tcpdump使用方法

2022-05-19 09:13:17 字數 5518 閱讀 2218

tcpdump採用命令列方式,它的命令格式為:

tcpdump [ -adeflnnopqstvx ] [ -c 數量 ] [ -f 檔名 ]

i 網路介面 ] [ -r 檔名] [ -s snaplen ]

t 型別 ] [ -w 檔名 ] [表示式 ]

的選項介紹

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

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

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

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

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

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

-l    使標準輸出變為緩衝行形式;

-n    不把網路位址轉換成名字;

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

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

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

-c    在收到指定的包的數目後,tcpdump就會停止;

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

-i    指定監聽的網路介面;

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

-w    直接將包寫入檔案中,並不分析和列印出來;

-t    將監聽到的包直接解釋為指定的型別的報文,常見的型別有rpc (遠端過程

呼叫)和snmp(簡單網路管理協議;)

2. tcpdump的表示式介紹

表示式是乙個正規表示式,tcpdump利用它作為過濾報文的條件,如果乙個報文滿足表示式的條件,則這個報文將會**獲。如果沒有給出任何條件,則網路上所有的資訊包將會被截獲。

在表示式中一般如下幾種型別的關鍵字,

一種是關於型別的關鍵字,主要包括host,net,port, 例如 host 210.27.48.

2,指明 210.27.48.

2是一台主機,net 202.0.0.

0 指明202.0.0.

0是乙個網路位址,port 23 指明埠號是23。如果沒有指定型別,預設的型別是host.

第二種是確定傳輸方向的關鍵字,主要包括src , dst ,dst or src, dst and src ,這些關鍵字指明了傳輸的方向。舉例說明,src 210.27.

48.2 ,指明ip包中源位址是210.27.

48.2 , dst net 202.0.

0.0 指明目的網路位址是202.0.

0.0 。如果沒有指明方向關鍵字,則預設是src or dst關鍵字。

第三種是協議的關鍵字,主要包括fddi,ip ,arp,rarp,tcp,udp等型別。

下面介紹一下tcpdump最常用的一些引數:

-i 指定要在哪個網口上抓包,這個網口既可以是物理網口(ethn), 也可是邏輯網口(網橋/vlan...),比如:是網橋(br0 = eth0 + eth2)模式, 即可在eth0上抓取"lan"口資料, 也可在eth2上抓取'wan'口資料, 還可以是一些虛擬網口tun、vpntun。

dst host 指定目標ip,如tcpdump –i eth0 dst host 202.96.137.

75 –n 表示在eth0抓目標ip為202.96.137.

75的所有資料報。

src host 指定源ip, 如tcpdump –i eth0 src host 202.96.137.75 –n 表示在eth0抓

源ip為202.96.137.75的所有資料報。

host 指定源ip或者目標ip,如tcpdump –i eth0 host 202.96.137.

75 –n 表示在eth0抓源ip或者目標ip為202.96.137.

75的所有資料報。

dst port 指定目標埠。

src port 指定源埠。

port指定源埠或者目標埠。如果想要獲取主機210.27.48.1接收或發出的telnet包,使用如下命令:

#tcpdump tcp port 23 and host 210.27.48.1

net 指定子網,如tcpdump –i eth0 net 200.200.20.

0/24 –n 表示在eth0抓所有ip以200.200.20開頭的資料報,net前面同樣可以用src或者dst來修飾。

-c 指定抓包個數,如tcpdump –i eth0 port 25 –c 8 –n表示在eth0抓25埠的資料報,抓滿8包tcpdump就自動退出。這個可以用在當乙個連線有很多資料傳輸,但我們只想看前面n包的情況(後面可能都是些我們不關心的資料)。

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

1165> 使用-n後變成了:eth0 < 192.168.

0.9.1165 >

-nn 不進行埠到名稱的轉換。如80到http的轉換。

-e 在輸出行列印出資料鏈路層的頭部資訊,即把mac位址列印出來,這個也非常有用,如可以據此判斷某台pc是否把閘道器直接指向了我們的裝置(網橋)。

-w 直接將按過濾條件抓到的包寫入指定檔案中,並不列印出來。如tcpdump –i eth0 port 110 –w /tmp/表示在eth0抓埠110的資料報並寫入檔案/tmp/中,這是個我們經常用到的引數,在客戶那裡由於遠端網速慢或者資料報比較多的情況下,往往很難進行協議分析,這個時候就可以把資料報儲存到檔案中再通過網路傳輸到我們自己的pc上用友好方便的圖形工具來分析。

-c 該引數與-w引數一起使用,主要是用來限制寫入檔案的大小,如果超過指定大小了,就重新開啟乙個新的檔案進行寫入,新檔名為-w指定的檔名+n,n從2開始計數,如tcpdump –i eth0 port 110 –c 1 –w /tmp/表示在eth0抓埠110的資料報並寫入檔案/tmp/中,但檔案的大小最大為100萬位元組,注意這裡的單位為100萬位元組,大概是976.5k。

-s 指定儲存的資料報最大長度, 0 就是整個資料報,預設大小是96,這個長度是包括鏈路層頭部的。這個也是經常用到的,比如你想分析訪問網頁的資料報,一定要指定長度,否則很多東西你是看不到的,如http get的host等。一般指定-s 0即可。

-s 列印絕對序號,而不是相對序號,預設是列印相對序號的(更容易進行協議分析)。

-t 在輸出的每一行不列印時間戳,如果你不關心發生的時間,就使用該引數。

-x 指定以十六進製制列印出每個資料報。

-x 指定在對每個資料報列印十六進製制的同時,也列印ascill文字格式。

tcpdump還支援邏輯關係過濾,這些關鍵字可以組合起來構成強大的組合條件來滿足人們的需要,下面舉幾個例子來說明。

tcpdump -i eth0 host 192.168.9.173 and host not 192.168.9.28 -n

表示在eth0抓ip為192.168.9.

173但不為192.168.9.

28的資料報,這裡192.168.9.

173為我自己pc的ip位址,192.168.9.

28為在上面抓包的裝置位址,這裡我們本身的目的是想抓我自己pc發向外網的資料(排除掉了訪問裝置本身的資料)。

tcpdump -i eth0 \(icmp or udp\) and host 192.168.9.173 –n

表示在eth0抓源ip或者目的ip為192.168.9.173的icmp或者udp資料報。

tcpdump -i eth0 net 192.168.9.0/24 and host not 192.168.9.173 –n

表示在eth0抓源ip或者目的ip以192.168.9開頭,但不為192.168.9.173的所有資料報。

3. tcpdump 的輸出結果介紹

下面我們介紹幾種典型的tcpdump命令的輸出資訊

(1) 資料鏈路層頭資訊

使用命令#tcpdump --e host ice

ice 是一台裝有linux的主機,她的mac位址是0:90:27:

58:af:1a,h219是一台裝有solaric的sun工作站,它的mac位址是8:

0:20:79:

5b:46;上一條命令的輸出結果如下所示:

21:50:12.

847509 eth0 < 8:0:20:

79:5b:46 0:

90:27:58:

af:1a ip 60: h219.

33357 > 0:0(0) ack 22535 win 8760 (df)

分析:21:50:

12是顯示的時間, 847509是id號,eth0 《表示從網路介面eth0 接受該資料報,eth0 >表示從網路介面裝置傳送資料報, 8:0:20:

79:5b:46是主機h219的mac位址,它表明是從源位址h219發來的資料報.

0:90:27:

58:af:1a是主機ice的mac位址,表示該資料報的目的位址是ice .。

ip 是表明該資料報是ip資料報,60是資料報的長度, h219.33357 > ice.

telnet 表明該資料報是從主機h219的33357埠發往主機ice的telnet(23)埠. ack 22535表明對序列號是222535的包進行響應. win 8760表明傳送視窗的大小是8760.

(2) arp包的tcpdump輸出資訊

使用命令#tcpdump arp

得到的輸出結果是:

22:32:42.802509 eth0 > arp who-has route tell ice (0:90:27:58:af:1a)

22:32:42.

802902 eth0 < arp reply route is-at 0:90:27:

12:10:66 (0:

90:27:58:

af:1a)

分析: 22:32:

42是時間戳, 802509是id號, eth0 >表明從主機發出該資料報, arp表明是arp請求包, who-has route tell ice表明是主機ice請求主機route的mac位址。 0:90:

27:5

8:af:1a是主機ice的mac位址。

(3) tcp包的輸出資訊

用tcpdump捕獲的tcp包的一般輸出資訊是:

src > dst: flags data-seqno ack window urgent options

src > dst:表明從源位址到目的位址, flags是tcp包中的標誌資訊,s 是syn標誌, f (fin), p (push) , r (rst) "." (沒有標記); data-seqno是資料報中的資料的順序號, ack是下次期望的順序號, window是接收快取的視窗大小, urgent表明資料報中是否有緊急指標.

options是選項.

(4) udp包的輸出資訊

用tcpdump捕獲的udp包的一般輸出資訊是:

> udp lenth

udp十分簡單,上面的輸出行表明從主機route的port1埠發出的乙個udp資料報到主機ice的port2埠,型別是udp, 包的長度是lenth。

paintman使用方法

paintman講義 選單和面板介紹 浮動面板 a.工具面板切換圖象編輯工具 b.檔案預覽用於確認和切換 檔案 c.著色鏡面板 d.油漆調色盤 油漆有關的特性開關和設定.d 1.填充 填充方式設定.d 2.刷子 氣刷大小和淡入淡出設定.d 3.動畫臺 動畫臺設定.e.顏色圖表調色盤 註冊,重新命名並...

CorelDRAW使用方法

藝術筆工具的使用 可以繪製出類似鋼筆 毛筆的線條,製作出不同風格的作品,在藝術筆工具的屬性欄中提供了5種筆觸工具。預置工具 提供了23種預設筆劃樣式,繪製線條時會依據所選筆畫的樣式繪製出符合要求的線條。畫筆工具的使用 可以隨著畫出的曲線路徑,將畫筆筆劃列表中所選的圖案拉長變形,也就是說將線條賦予圖案...

PPS使用方法

1 物料乾燥工藝 根據料受潮的情況確定 溫度 120 140 時間 4 8hr 注 如成型產品中有金屬嵌件,必須先預熱嵌件 金屬嵌件預熱溫度 130 140 金屬嵌件預熱時間 恆溫1 hr 2 注塑工藝 模具溫度 130 140 料筒溫度 前段 240 260 中段 290 310 後段 300 3...