tcpdump常用于网络抓包,能够将抓取的包保存下来,这样就能进一步深入分析。抓包保存的文件可以使用tcpdump进行查看,也可以借助第三方软件(如wireshark)进行辅助分析。

1. 抓取指定网络设备上的包

抓取网卡eth0上的包

tcpdump -i eth0

2. 限制抓包的数量

只抓取5个包

tcpdump -c 5 -i eth0

3. 将抓取的包以ASCII的方式打印出来

tcpdump -A -i eth0

4. 将抓取的包以十六进制的方式打印出来

tcpdump -XX -i eth0

5. 对抓取到的包上打出更方便阅读的时间戳

增加 -t 参数能够将抓取到的包中的时间以方便阅读的形式打印出来,使用 -tttt 参数能够将包中的时间戳以更详细的方式打印出来。

tcpdump -t -i eth0
tcpdump -tttt -i eth0

6. 将抓取的包写入到文件中

tcpdump -w netdump.pcap -i eth0

7. 读取抓到的包

tcpdump -r netdump.pcap

8. 在抓到的包中显示ip地址

增加 -n 参数不会解析主机名,增加 -nn 参数不会解析主机名和端口名

tcpdump -n -i eth0
tcpdump -nn -i eth0

9. 以绝对值显示包的ISN号

tcpdump -S -i eth0

10. 对抓取到的包显示更详细的信息

参数 -v 是verbose的缩写,以下命令表示对抓取到的包显示更详细的信息。

tcpdump -v -i eth0
tcpdump -vv -i eth0
tcpdump -vvv -i eth0

11. 对抓到的包进行协议类型过滤

支持的协议类型有:fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp, udp
以下命令只会抓取网卡eth0上的arp包

tcpdump -i eth0 arp

12. 在抓包时对包进行大小过滤

下面的命令会分别抓取大于1024字节和小于1024字节的包

tcpdump -i eth0 greater 1024
tcpdump -i eth0 less 1024

13. 抓取指定端口上的包

tcpdump -i eth0 port 22

14. 抓取发往指定目的和端口上包

可以使用 andor 对过滤条件进行组合以实现精确的抓包。

tcpdump -w net_dump.pcap -i eth0 dst 10.181.140.216 and port 22

常用tcpdump命令示例

tcpdump –i any 'port 8888'
tcpdump –i any 'tcp port 8888'
tcpdump –i any 'tcp src port 8888'
tcpdump –i any 'tcp src port 8888 and udp dst port 9999'
tcpdump -i any 'src host 127.0.0.1 and tcp src port 12345' -XX -nn -vv