tcpdump为linux下抓包工具,抓下来的文件可以直接用ethereal 或者wireshark打开。
文章目录
1、tcpdump介绍
tcpdump主要选项
类型
host, net, port
方向
src, dst, src or dst, src and dst
协议
ip, tcp, udp, arp, rarp, ether, fddi
逻辑
and, or, not 或者 &&, ||, !
选项
-i指定网卡, -n显示ip, -A文本显示
-c抓包数, -x/-xx/-X/-XX二进制显示, -r读, -w写
监听来自192.168.1.10 或 192.168.1.11的80端口:
tcpdump port 80 and \(src 192.168.1.10 or src 192.168.1.11\)
注:括号需要转义
选项
-i:指定网卡。
-n:显示ip,而不是主机名。
-c:指定抓多少个包后退出。
-A:以ASCII方式显示包内容,这个选项对文本格式的协议包非常有用。
-s:指定抓包显示一行的宽度,-s0表示显示完整的包,经常和-A一起用。
-x/-xx/-X/-XX:以十六进制显示包内容,几个选项只有细微的差别,详见man手册。
-vv:详细信息。
-r:从文件中读取。
-w:导出到指定文件。
监听来自127.0.0.1到端口8012的数据,并导出到指定文件:
tcpdump tcp dst port 8012 and src host 127.0.0.1 -vv –w output.dat
从指定文件加载监听数据:
tcpdump -r output.dat
监听网卡eth1端口7012的数据:
tcpdump tcp port 7012 -ieth1 –n
每一行中间都有这个包所携带的标志:
S=SYN,发起连接标志。
P=PUSH,传送数据标志。
F=FIN,关闭连接标志。
ack 表示确认包。
RST=RESET,异常关闭连接。
. 表示没有任何标志。
抓192.168.1.10的80端口和110和25以外的其他端口的包
tcpdump -i eth1 host 192.168.1.10 and ! port 80 and ! port 25 and ! port 110 -w /tmp/xxx.cap
以100m大小分割保存文件, 超过100m另开一个文件 -C 100m
抓10000个包后退出 -c 10000
后台抓包, 控制台退出也不会影响:
nohup tcpdump -i eth1 port 110 -w /tmp/xxx.cap &
抓下来的文件可以直接用ethereal 或者wireshark打开。
抓双网卡绑定的包bond0
tcpdump -i bond0 port 110 -w /tmp/xxx.cap