tcpdump如何抓界麵包 tcpdump抓包命令

2021-10-13 05:44:35 字數 4310 閱讀 4184

一. 選項

tcpdump支援相當多的引數,如使用-i引數指定tcpdump監聽的網路介面,這在計算機具有多個網路介面時非常有用,使用-c引數指定要監聽的資料報數量,使用-w引數指定將監聽到的資料報寫入檔案中儲存,等等。如下:

-a 將網路位址和廣播位址轉變成名字;

-b 在資料-鏈路層上選擇協議,包括ip、arp、rarp、ipx都是這一層的。

-c 指定要監聽的資料報數量,在收到指定的包的數目後,tcpdump就會停止.

-d 將匹配資訊包的**以人們能夠理解的彙編格式給出;

-dd 將匹配資訊包的**以c語言程式段的格式給出;

-ddd 將匹配資訊包的**以十進位制的形式給出;

-e 在輸出行列印出資料鏈路層的頭部資訊;

-f 從指定的檔案中讀取表示式,忽略其它的表示式;

-f 將外部的internet位址以數字的形式列印出來;

-i 指定監聽的網路介面,這在計算機具有多個網路介面時非常有用.

-l 用於輸出為行緩衝的形式,可以將資料重定向。

-n 不列印出缺省的網域名稱。前面資訊-n後就是:eth0  router.telnet。

-n 不進行ip位址到主機名的轉換。如果不使用這一項,當系統中存在某一主機的主機名時,tcpdump會把ip位址轉換為主機名顯示,就像這樣:eth0  router.domain.net.telnet,使用-n後變成了:eth0  192.168.0.1.telnet。

-nn 不進行埠名稱的轉換。前面那條資訊使用-nn後就變成了:eth0  router.domain.net.23。

-o 不進行匹配**的優化。

-r 從指定的檔案中讀取包(這些包一般通過-w選項產生);

-t 將監聽到的包直接解釋為指定的型別的報文,常見的型別有rpc (遠端過程呼叫)和snmp(簡單網路管理協議;)

-t 在輸出的每一行不列印時間戳;

-tt 列印原始的、未格式化過的時間。

-v 輸出乙個稍微詳細的資訊,例如在ip包中可以包括ttl和服務型別的資訊;

-vv 輸出詳細的報文資訊;

-w 指定將監聽到的資料報寫入檔案中儲存而並不分析和列印出來.

二. 例項

1.監視第乙個網路介面上所有流過的資料報:

tcpdump

普通情況下,直接啟動tcpdump將監視第乙個網路介面上所有流過的資料報,注意這裡使用超級使用者。當使用者上網得時候,就會將監視得資料列印出來。

2.監視指定網路介面的資料報:

tcpdump -i eth1

如果不指定網絡卡,預設tcpdump只會監視第乙個網路介面,一般是eth0。

3.監視指定主機的資料報:

tcpdump host sundown

tcpdump host 210.27.48.1

4.監視指定主機和埠的資料報:

tcpdump tcp port 23 host 210.27.48.1

5.重定向輸出:

tcpdump -l >tcpcap.txt

將得到的資料存入tcpcap.txt檔案中。

6.匹配一次:

tcpdump -c 1

這樣就只匹配乙個包,然後tcpdump就退出。

7.監視指定主機和另外主機之間得通訊:

tcpdump host 10.126.1.222 and (10.126.1.1 or 10.126.1.13 )

將監視主機10.126.1.222和10.126.1.1或者10.126.1.13之間的通訊,注意這裡得括號。

8.監視時排除某一主機:

tcpdump ip host 10.126.1.1 and ! 10.126.1.13

這裡監視10.1.6.1.1除了和10.126.1.13之外所有主機的通訊。

9.指定源主機和目的網路的過濾:

tcpdump src host 10.126.1.222 and dst net 10.126.1.0/24

過濾的是源主機為10.126.1.222與目的網路為10.126.1.0/24的報頭。

10.匹配指定網路:

tcpdump -i eth1 net 10.1.10.0 mask 255.255.255.0

這裡有掩碼只支援ipv4,或者使用"tcpdump 10.1.10.0/24",同樣這個格式只對ipv4有用。

11.監視指定主機指定協議的包:

tcpdump ip host 10.126.1.13

這裡監視主機10.126.1.13收發的所有ip包。

12.監視指定主機和埠的資料報:

tcpdump -i eth0 host 10.126.1.1 and port 80

監視10.126.1.1埠80的tcp或udp資料報

13.監視指定方向和介面的包1:

tcpdump -i eth0 src host 10.126.1.222

監視10.126.1.222傳送的,eth0上面的包。

14.監視指定方向和介面的包2:

tcpdump -i eth0 dst host 10.126.1.222

監視10.126.1.222接收的,eth0上面的包。

15.監視指定鏈路層資訊:

tcpdump -b arp

只顯示網路中的arp即位址轉換協議資訊。

16.過濾源主機mac為00:50:04:ba:9b的報頭:

tcpdump ether src 00:24:7e:03:62:14

可以使用ifconfig檢視本地主機的mac,使用arp -n來檢視本地已知其他主機的mac。

17.過濾源主機為10.126.1.222目的主機埠不是telnet的報文:

tcpdump src host 10.126.1.222 and dst port not telnet

18.匹配ether包:

tcpdump -i eth1 'ether src 00:24:7e:03:62:14'

將會在eth1上面監聽來自mac為"00:24:7e:03:62:14"的資料報。

19.監聽ip廣播組播資料報 :

tcpdump 'ip dst 192.168.240.255'

只需指明廣播或組播位址即可。在同乙個區域網的另一台主機執行"ping -b 192.168.240.255"即可傳送icmp的廣播包。

20.監聽80埠的tcp資料報:

tcpdump 'tcp dst port 80'

一般http的通訊資料,只需指定匹配埠為80的條件即可。

21.匹配arp包:

tcpdump arp

可以使用"arping "產生arp請求和接收答應報文,使用"tcpdump -p 'arp'"來監視,此處-p選項是使網路工作於正常模式(非混雜模式),這樣是方便檢視匹配結果,我們可以使用"ssh -p 80 "或者"wget "來產生http包。

22.監視通過指定閘道器的資料報:

tcpdump gateway hostname

23.匹配埠53上的udp資料報:

tcpdump 'upd port 53'

實際53號埠是dns協議所用的埠,可以用'ping -c 1來產生dns請求和答應。

24.抓取wireshark工具能夠分析的包:

tcpdump -w dumpfile.pcap

這樣抓取內容存放在dumpfile.pcap中,可以用wireshark圖形工具進行分析。有的說需要加-s引數,例如"tcpdump -s 0 -w dumpfile.pcap"。

三. tcpdump 與wireshark:

wireshark(以前是ethereal)是windows下非常簡單易用的抓包工具。但在linux下很難找到乙個好用的圖形化抓包工具。還好有tcpdump。我們可以用tcpdump + wireshark 的完美組合實現:在 linux 裡抓包,然後在windows 裡分析包。

tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap

(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp這些選項等都要放到第乙個引數的位置,用來過濾資料報的型別(2)-i eth1 : 只抓經過介面eth1的包(3)-t : 不顯示時間戳(4)-s 0 : 抓取資料報時預設抓取長度為68位元組。加上-s 0 後可以抓到完整的資料報(5)-c 100 : 只抓取100個資料報(6)dst port ! 22 : 不抓取目標埠是22的資料報(7)src net 192.168.1.0/24 : 資料報的源網路位址為192.168.1.0/24(8)-w ./target.cap : 儲存成cap檔案,方便用ethereal(即wireshark)分析

文字介面資料報抓包工具 tcpdump

一 命令語法 tcpdump annqx i 介面 w 儲存檔名 c 次數 r 檔案 所要摘取的資料報資料格式 選項與引數 a 資料報的內容以ascii顯示,通常用來抓取www的網頁資料報資料 e 使用資料鏈路層的mac資料報來顯示 nn 直接以ip及port number顯示,而非主機名與服務名稱...

如何利用tcpdump對mysql進行抓包操作

命令如下 tcpdump s 0 l w dst 192.168.244.10 and port 3306 i eno16777736 strings 其中 i指定監聽的網路介面,在rhel 7下,網路介面名不再是之前的eth0,而是 eno16777736。在rhel 5 6下,可直接不帶 i引數...

Linux下面如何用tcpdump抓包

很多時候我們的系統部署在linux系統上面,在一些情況下定位問題就需要檢視各個系統之間傳送資料報文是否正常,下面我就簡單講解一下如何使用tcpdump抓包 tcpdump是linux下面的乙個開源的抓包工具,和windows下面的wireshark抓包工具一樣,支援抓取指定網口 指定目的位址 指定源...