tcpdump工具的使用方法與常見選項

2021-08-20 21:02:46 字數 3912 閱讀 7525

tcpdump 命令

是一款sniffer工具,它可以列印所有經過網路介面的資料報的頭資訊,也可以使用-w選項將資料報儲存到檔案中,方便以後分析。

直接啟動tcpdump將監視第乙個網路介面上所有流過的資料報

tcpdump
監視指定網路介面的資料報

tcpdump -i eth1
如果不指定網絡卡,預設tcpdump只會監視第乙個網路介面,一般是eth0監視指定主機的資料報列印所有進入或離開sundown的資料報。

tcpdump host sundown
也可以指定 ip , 例如截獲所有210.27.48.1的主機收到的和發出的所有資料報

tcpdump host 210.27.48.1
常用選項選項

說明指定要抓取的包數量。注意,是最終要獲取這麼多個包。例如,指定-c 10將獲取10個包,但可能已經處理了100個包,只不過只有10個包是滿足條件的包

指定 tcpdump 需要監聽的介面。若未指定該選項,將從系統介面列表中搜尋編號最小的已配置好的介面 (不包括 loopback 介面,要抓取 loopback 介面可以使用tcpdump -i lo,一旦找到第乙個符合條件的介面,搜尋馬上結束。可以使用any關鍵字表示所有網路介面

對位址以數字方式顯式,否則顯式為主機名,也就是說-n選項不做主機名解析

除了-n的作用外,還把埠顯示為數值,否則顯示埠服務名

輸出包的頭部資料,會以 16 進製和 ascii 兩種方式同時輸出,更詳細

當分析和列印的時候,產生更詳細的輸出

列出可用於抓包的介面。將會列出介面的數值編號和介面名,它們都可以用於- i之後

tcpdump 表示式

表示式用於篩選輸出哪些型別的資料報,如果沒有給定表示式,所有的資料報都將輸出,否則只輸出表示式為true的包

在表示式中出現的 shell 字元建議使用單引號包圍

tcpdump 的表示式由乙個或多個單元組成,每個單元一般包含 id 的修飾符和乙個 id (數字或名稱)

有三種修飾符:

(1)type:指定id 的型別

可以給定的值有host/net/port/portrange

例如host foo,net 128.3,port 20,portrange 6000-6008

預設的 type 為 host

(2)dir:指定id 的方向

可以給定的值包括src/dst/src or dst/src and dst

預設為src or dst

例如:

src foo表示源主機為foo的資料報

dst net 128.3表示目標網路為128.3的資料報

src or dst port 22表示源或目的埠為22的資料報

(3)proto:通過給定協議限定匹配的資料報型別

常用的協議有tcp/udp/arp/ip/ether/icmp

若未給定協議型別,則匹配所有可能的型別

例如:

tcp port 21

udp portrange 7000-7009

所以,乙個基本的表示式單元的格式為proto dir type id

除了使用修飾符和id 組成的表示式單元

還有關鍵字表示式單元:gatewaybroadcastlessgreater以及算術表示式

表示式單元之間可以使用操作符and / && / or / || / not / !進行連線

從而組成複雜的條件表示式

host foo and not port ftp and not port ftp-data

這表示篩選的資料報要滿足

主機為 foo 且埠不是 ftp (埠21)和 ftp-data (埠20)的包

常用埠和名字的對應關係可在linux系統中的/etc/service檔案中找到

另外,同樣的修飾符可省略

例如:

tcp dst port ftp or ftp-data or domain

tcp dst port ftp or tcp dst port ftp-data or tcp dst port domain意義相同

都表示包的協議為 tcp 且目的埠為 ftp 或 ftp-data 或 domain (埠53)

使用括號()可以改變表示式的優先順序,但需要注意的是括號會被 shell 解釋,所以應該使用反斜線\轉義,在需要的時候,還需要包圍在引號中

tcpdump 示例

1, 截獲主機 hostname 傳送的所有資料

tcpdump -i eth1 src host hostname
2, 監視所有送到主機 hostname 的資料報

tcpdump -i eth1 dst host hostname
3, 監視指定主機和埠的資料報如果想要獲取主機 210.27.48.1 接收或發出的 telnet 包,使用如下命令

tcpdump tcp port

23 host 210.27

.48.1

對本機的 udp 123 埠進行監視, 123 為 ntp 的服務埠

tcpdump udp port

123

4, 抓取 ping 包

5, 抓取本機 22 埠的包

6, 解析資料報

tcpdump工具的使用方法與常見選項

tcpdump可以將網路中傳送的資料報的 頭 完全截獲下來提供分析。支援對網路層 協議 主機 網路或埠的過濾,並提供and or not等邏輯語句來去掉無用的資訊。不帶引數的tcpdump會收集網路中所有的資訊報頭,資料量巨大,所以,必須過濾。常用選項 具體含義 i指定監聽的網路介面。nnip和埠均...

tcpdump使用方法

你也可以用選項來找出多個埠而不用一一指定,也可以僅檢視大於或小於某一位元組大小的包。變得有創意 表示式很好,但tcpdump真正的魅力在於創造性的將表示式聯合在一起來準確的找到你想要的。有三種聯合的方式 學過電腦的人會很熟悉 與and or 或or or 非not or 更多的例子 從10.5.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。如果沒有指定型別,預...