1. 程式人生 > >Linux下抓包命令tcpdump的使用

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的網路資料並存儲