在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路徑下