寻觅生命中的那一片浅草......

文章属于类别 Network

tcpdump详细用法

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://dgfpeak.blog.51cto.com/195468/277304
常用参数简介:
-i指定监听网卡,用于机器有多个网卡的情况
-c指定要监听的数据包的数量
-w将监听到的数据包存入文件中

I.定义类型的参数
包括host,net,port,分别对应着主机,网络地址和端口

II.定义传输方向的参数
包括src,dst,dst or src,dst and src

III.定义协议的参数
包括fddi,ip,arp,tcp,udp等

IV.除以上之外还有gateway,broadcast,less,greater
逻辑运算符:1)非 not ! 2)与 and && 3)或 or ||

1> #tcpdump 直接启动tcpdump默认监听第一块网卡上面流过的所有数据包
2> #tcpdump host 222.222.222.222 获取该主机上面收到和发出的所有数据包
3> #tcpdump host A and \(B or C\) 获取主机A和B或C的通信信息,注意括号
4> #tcpdump ip host A and !B 获取A和除了B的所有ip包
5> #tcpdump tcp port 23 host A 获取A发出或接受的所有telnet包
6> #tcpdump udp port 123 监听udp123端口的ntp服务
7> #tcpdump -i eth0 src host hostname 监听来自hostname的所有信息
8> #tcpdump -i eth0 gateway gatewayname 监听通过网关的数据包
9> #tcpdump -i eth0 host hostname and (src or dst)port 80 监听指定端口的信息

当网卡开启混杂模式时,系统日志里会有如下信息
March 9 10:03:06 localhost kernel: eth0: Promiscuous mode enabled.
March 9 10:03:06 localhost kernel: device eth0 entered promiscuous mode
March 9 10:03:07 localhost kernel: device eth0 left promiscuous mode

tcpdump对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。显然这不利于分析网络故障,通常的解决办法是 先使用带-w参数的tcpdump 截获数据并保存到文件中,然后再使用其他程序进行解码分析。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘。

除了过滤语句,还有一个很重要的参数,也就是说,如果这个参数不设置正确,会导致包数据的丢失!它就是-s 参数,是数据包的截取长度,仔细看man就会明白的!默认截取长度为60个字节,但一般ethernet MTU都是1500字节。所以,要抓取大于60字节的包时,使用默认参数就会导致包数据丢失!

只要使用-s 0就可以按包长,截取数据

本文出自 “Get and Share” 博客,请务必保留此出处http://dgfpeak.blog.51cto.com/195468/277304

bnx2 device eth1 does not seem to be present

ifup eth1
bnx2 device eth1 does not seem to be present, delaying initialization.

重启服务器搞定

RHEL5.4和BCM5709网卡驱动问题

前段时间最折腾的事莫属:RHEL5.4和BCM5709网卡驱动问题。

系统:rhel5.4 64bit

服务器:DELL R710

默认RHEL5.4 64bit的驱动对BCM5709的网卡支持不好,网卡一遇到流量比较大就会hung up,后来不得已去dell官方去寻找驱动,同时将kernel降级为:2.6.18-128.el5(系统安装好后,我做了一个kernel的升级)这样就没有出现过hung up的情况。

既然64bit有问题,32bit的也是逃脱不了。

转载自:http://www.ourlinux.net/life/rhel54-bcm5709-nic-drivers-problem/

我们公司用 DELL_R410+CentOS 5.3 64bit也有这个问题

去BCM下载新的驱动安装就好了

HTTP请求流程(二)—-Telnet模拟HTTP请求

上一部分”流程简介“, 我们大致了解了下HTTP请求的流程,这一篇我向大家介绍下如何利用Telnet来模拟Http请求—访问百度。
我们直接开始吧!
1、打开”运行”->cmd进入命令环境;
2、输入”telnet www.baidu.com 80″,回车后 ,屏幕为全黑,此时我们利用快捷键”Ctrl+](右中括号)”来打开本地回显功能,这样我们就可以看见我们所打的东西了,如图:(注本阶段执行过程和以 下的过程均要求操作时间尽可能短,因为时间一长,便会被认为断开连接。)

3、单击回车,进行编辑状态。
4、输入:”GET / HTTP/1.1″后回车,在第二段接着输入:”HOST:”然后按回车,这样一个简单的HTTP请求就完成了,接着我人只要再按下回车,便向服务器递交 这个请求了。如图:(我们来看一下这个是什么意思:GET表示请求方式,/表示请求的根目录下的文件,HTTP/1.1表示HTTP协议版本,HOST就 是一个消息头,据某些朋友说1.1的版本一定要加一个”HOST:”可是我实验后发现”HOST :”不加仍旧可以正常发送请求,但是GET HTTP这个必须大写,否则就该请求无法发送)

5、接收服务器返回,这步其实不需要我们来做,因为当我们发送请求后,只需几秒钟,我们便会收到来自服务器反应.

6、这样,请求就算完成了。下面我们在百度中搜一下”1″,浏览器中的地址应该是:http://www.baidu.com/s?wd=1.看看请求是怎么样的

怎么样,大家会了吗?以上只是用GET方式进行请求,当然还可以用POST方式进行请求,只是POST我这不方便做实验,所以就不写了。大概的格式给大家参考下:
POST /localhost/login.aspx HTTP/1.1
HOST:
Content-Type:application/x-www-form-urlencoded
Content-Length:10

uid=xxxxxx

参考:
1.张孝祥老师的HTTP协议详解
2.关于HTTP的请求头可以参考:http://hi.baidu.com/Ê«Õ¹/blog/item/13c2e3ddb3a133ee77c638cd.html

查看httpd进程数(即prefork模式下Apache能够处理的并发请求数)

查看httpd进程数(即prefork模式下Apache能够处理的并发请求数)

Linux命令:
ps -ef | grep httpd | wc -l

查看Apache的并发请求数及其TCP连接状态:

Linux命令:
netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’

返回结果示例:
LAST_ACK 5
SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057

说明:
SYN_RECV表示正在等待处理的请求数;
ESTABLISHED表示正常数据传输状态;
TIME_WAIT表示处理完毕,等待超时结束的请求数

转载自:查看httpd进程数

2024年五月
« 5月    
 12345
6789101112
13141516171819
20212223242526
2728293031