在linux下,可以使用tcpdump命令来抓取数据包
主要用法
过滤网卡:
tcpdump -i ens33 #抓取所有经过网卡eth0数据包
tcpdump -i lo #抓取环回口的数据包
过滤主机/ip:
tcpdump host 192.168.0.103 #抓取所有IP为192.168.0.103的数据包
tcpdump src host 192.168.0.1 #抓取所有源IP为192.168.0.1的数据包
tcpdump dst host 192.168.0.1 #抓取所有目的IP为192.168.0.1的数据包
过滤特定协议:
tcpdump udp #抓取udp协议的数据包
tcpdump udp #抓取tcp协议的数据包
抓取特定类型的数据包:
tcpdum -i ens33 'tcp[tcpflags] = tcp-syn' #抓取所有经过网卡ens33的SYN类型数据包
综合:
tcpdump -i ens33 udp dst port 53 #抓取经过网卡eth1的所有DNS数据包(默认端口)
逻辑语句过滤:
tcpdump -i ens33 ‘((tcp) and ((dst net 172.16) and (not dst host 192.168.1.200)))’ #抓取所有经过网卡ens33,目的网络是172.16,但目的主机不是192.168.0.200的TCP数据
抓包存取
tcpdump -i ens33 host 172.16.7.206 and port 80 -w /tmp/wxk.txt #抓取所有经过网卡ens33,目的主机为172.16.7.206的端口80的网络数据并存储到tmp/wxk.txt路径下