在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 icmp #抓取ICMP協定的資料包
抓取特定類型的資料包:
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的網絡資料并存儲
本文同步分享在 部落格“謝公子”(CSDN)。
如有侵權,請聯系 [email protected] 删除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。