tcpdump [选项] 表达式
------选项------
-i : 指定监听哪个网卡,比如eth0/eth1
-n : 不把网络地址转换成名字,即显示ip
-f : 将外部的Internet地址以数字的形式打印出来
------表达式------
由3部分的限定词组成:
1, 类型: host, port, portrange,net ,若没有指定类型参数,缺省是host
2,方向 : src, dst, src or dst, src and dst, addr1, addr2, addr3, and addr4 若没有指定,缺省是src and dst
3,协议 : ether, fddi, tr,wlan, ip, ip6, arp, rarp, decnet, tcp and udp 等。 若没有指定,缺省的是所有协议。
例子:
tcpdump -i eth1 -n -f 'dst 10.165.5.39 and src port 80'
监听目的ip是10.165.5.39,并且源port是80的数据包
-----------tcpdump 的TCP输出结果详解----------------
11:14:49.571653 IP 9.24.153.142.http > 10.165.5.39.45786: Flags [P.], seq 23130609:23134705, ack 1233, win 133, options [nop,nop,TS val 2108438221 ecr 343688660], length 4096
11:14:49.571653 :时间带有精确到微妙
IP 9.24.153.142.http > 10.165.5.39.45786 :源ip是9.24.153.142,端口是80;目标ip是10.165.5.39,端口是45786
[S] 表示这是一个SYN请求
[.] 表示这是一个ACK确认包,(client)SYN->(server)SYN->(client)ACK 就是3次握手过程
[P] 表示这个是一个数据推送,可以是从服务器端向客户端推送,也可以从客户端向服务器端推
[F] 表示这是一个FIN包,是关闭连接操作,client/server都有可能发起
[R] 表示这是一个RST包,与F包作用相同,但RST表示连接关闭时,仍然有数据未被处理。可以理解为是强制切断连接
win 342是指滑动窗口大小
length 12指数据包的大小