48 tcpdump簡單使用

2021-09-08 23:39:53 字數 4423 閱讀 3128

1、說明

tcpdump - dump traffic on a network

tcpdum option

tcpdump [-adeflnnopqstvx] [-c 數量

][-f

檔名][-i

網路介面

][-r

檔名][-s snaplen][-t

型別][-w

檔名][

表示式]

tcpdump可以將網路中傳送的資料報的「頭」完全截獲下來提供分析。它支援針對網路層、協議、主機、網路或埠的過濾,

並提供and、or

、not

等邏輯語句來幫助你去掉無用的資訊。

系統時間 **主機

.埠

>

目標主機

.埠 資料報引數

07:40:51.668134 ip 192.168.161.160 > 10.6.12.8: icmp echo request, id 12587, seq 5, length 64

07:40:51.671144 ip 10.6.12.8 > 192.168.161.160: icmp echo reply, id 12587, seq 5, length 64

用tcpdump

過濾出來的資料用

ethereal

來分析。

2、option

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

-b在資料鏈路層上選擇協議,包括ip、

arp、

rarp

、ipx

都是這一層的

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

-dd將匹配資訊包的**以

c語言程式段的格式給出;

-ddd

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

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

-f將外部的

internet

位址以數字的形式列印出來;

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

進行重定向

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

-nn不進行埠名稱的轉換。

-n不列印出缺省的網域名稱。

-s指定資料報的長度

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

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

-tttt

完整的時間格式

-v輸出乙個稍微詳細的資訊,例如在

ip包中可以包括

ttl和服務型別的資訊;

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

-c在收到指定的包的數目後,

tcpdump

就會停止;

-f從指定的檔案中讀取表示式

,忽略其他的表示式;

-xprint packet format in hex and ascii.

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

-r從指定的檔中讀取包

(這些包一般通過

-w選項產生);

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

src、

dst、

port

、host

、net

、ether

、gateway

這幾個選項又分別包含

src、

dst

、port

、host

、net

、ehost

等子選項。他們用來分辨資料報的**和去向。

host

指定主機相關無論它是源還是目的,

net指定網路相關的,

ether

是實體地址,而

gateway

則用於閘道器。

ip icmp arp rarp和

tcp udp icmp

這些選項要放到第乙個引數位置,用來過濾資料報的型別。

-t將監聽到的包直接解釋為指定的型別的報文,常見的型別有

rpc(遠端過程)

3、表示式

1)表示式是乙個正規表示式,

tcpdump

利用它作為過濾報文的條件。

在表示式中一般有如下幾種型別的關鍵字,一種是關於型別的關鍵字,主要包括

host

,net

,port

;第二種是確定傳輸方向的關鍵字,主要包括

src,dst,dst or src, dst and src

;第三種是協議的關鍵字,主要包括

ip ,arp,rarp,tcp,udp

等型別。

還有其他關鍵字,

gateway, broadcast,less,greater,

還有三種邏輯運算,非

'not ' '! '

;與'and','&&'

;或'or' ,'||';2)

src > dst:

表明從源位址到目的位址

, flags

是tcp

包中的標誌資訊

,"." (

沒有標記),

s是syn標誌

, f (fin), p(push) , r (rst) ; data-seqno

是資料報中的資料的順序號

, ack

是下次期望的順序號

, window

是接收快取的視窗大小

, urgent

表明資料報中是否有緊急指標。

4、示例

1)tcpdump //

監聽所有資料報

2)tcpdump -b arp

3)tcpdump -i eth0 //

只顯示通過

eth0

介面上的所有報頭

4)src host 192.168.0.1 //

指定源主機

ip位址是

192.168.0.1

5)dst net 192.168.0.0/24 //

指定目標是網路

192.168.0.0

6)tcpdump src host 192.168.0.1 and dst net 192.168.0.0/24

7)tcpdump ether src 00:50:04:ba:9b

8)tcpdump src host 192.168.0.1 and dst port not telnet //

過濾源主機

192.168.0.1

和目的埠不是

telnet

的報頭9)

tcpdump ip//

只過濾資料

-鏈路層上的

ip報頭。

10)tcpdump udp and src host 192.168.0.1 //

只過濾源主機

192.168.0.1

的所有udp

報頭。11)

tcpdump tcp port 23 host 210.27.48.1

12)tcpdump -w test.out -i eth0 tcp port 6881

13)tcpdump -w test.out -i eth0 tcp port 6881 or udp \( 33210 or 33220 \)

14)tcpdump -w test.out dst 10.168.28.22 and tcp port 22

15)tcpdump tcp portrange 20-24

16)tcpdump -s 1500 //-s 0

就可以按包長,擷取資料

17)tcpdump -l > dat & tail -f  dat

」,例如

tcpdump -l |grep "sldfj"

18)tcpdump ip host 210.27.48.1 and !210.27.48.2

5、其他

1)在共享式的網路中,資訊包是會廣播到網路中所有主機的網路介面,在沒有使用

sniffer

工具之前,主機的網路裝置會判斷該資訊包是否應該接收,這樣它就會拋棄不應該接收的資訊包,

sniffer

工具卻使主機的網路裝置接收所有到達的資訊包,這樣就達到了網路監聽的效果。

2)顯然為了安全起見,不用作網路管理用途的計算機上不應該執行這一類的網路分析軟體,為了遮蔽它們,可以遮蔽核心中的

bpfilter

偽裝置。一般情況下網路硬體和

tcp/ip

堆疊不支援接收或傳送與本計算機無關的資料報,為了接收這些資料報,就必須使用網絡卡的混雜模式,並繞過標準的

tcp/ip

堆疊才行。在

freebsd

下,這就需要核心支援偽裝置

bpfilter

。因此,在核心中取消

bpfilter

支援,就能遮蔽

tcpdump

之類的網路分析工具。參考【

1】 】

】 後面的討論不錯

】 】

tcpdump簡單使用

1.基本命令 1 列出可監控的網絡卡介面 any包含所有active的介面 tcpdump list inte ces tcpdump d 2 監控any介面且只輸出前5條記錄 c引數 count tcpdump i any c 5 3 預設tcpdump會將ip port解析為name,禁用該解析...

tcpdump使用詳解

tcpdump採用命令列方式,它的命令格式為 tcpdump adeflnnopqstvx c 數量 f 檔名 i 網路介面 r 檔名 s snaplen t 型別 w 檔名 表示式 1.tcpdump的選項介紹 a 將網路位址和廣播位址轉變成名字 d 將匹配資訊包的 以人們能夠理解的彙編格式給出 ...

tcpdump 日常使用

使用 i引數指定tcpdump監聽的網路介面,這在計算機具有多個網路介面時非常有用,使用 c引數指定要監聽的資料報數量,使用 w引數指定將監聽到的資料報寫入檔案中儲存 a想要截獲所有210.27.48.1 的主機收到的和發出的所有的資料報 tcpdump host 210.27.48.1 b想要截獲...