Linux下抓包命令tcpdump的使用

在linux下,可以使用 tcpdump 命令来抓取数据包。

主要用法如下:

过滤网卡

tcpdump -i eth0    #抓取所有经过网卡eth0数据包
tcpdump -i lo     #抓取环回口的数据包

过滤主机/IP

tcpdump host 192.168.10.10        #抓取所有IP为192.168.10.10的数据包
tcpdump src host 192.168.10.10    #抓取所有源IP为192.168.10.10的数据包
tcpdump dst host 192.168.10.10    #抓取所有目的IP为192.168.10.10的数据包

过滤端口: 

tcpdump port 1234      #抓取所有端口为1234的网络数据 
tcpdump src port 1234  #抓取所有源端口为1234的网络数据 
tcpdump dst port 1234  #抓取所有目的端口为1234的网络数据 

过滤特定协议: 

tcpdump udp   #抓取UDP协议的数据包

抓取特定类型的数据包: 

tcpdump -i eth1 'tcp[tcpflags] = tcp-syn'   #抓取所有经过网卡1的SYN类型数据包

结合

tcpdump -i eth1 udp dst port 53  #抓取经过网卡eth1的所有DNS数据包(默认端口) 

逻辑语句过滤: 

tcpdump -i eth1 ‘((tcp) and ((dst net 172.16) and (not dst host 192.168.1.200)))’  #抓取所有经过网卡1,目的网络是172.16,但目的主机不是192.168.1.200的TCP数据 

抓包存取: 

tcpdump -i eth1 host 172.16.7.206 and port 80 -w /tmp/xxx.cap  #抓取所有经过网卡1,目的主机为172.16.7.206的端口80的网络数据并存储

猜你喜欢

转载自blog.csdn.net/qq_36119192/article/details/84996511