Linux tcpdump命令詳解

2021-09-07 23:45:44 字數 3096 閱讀 3707

1、命令:tcpdump

2、命令引數

-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(簡單網路管理協議)

3、例項

下面的例子全是以抓取eth0介面為例,如果不加」-i eth0」是表示抓取所有的介面包括lo。  

首先安裝tcpdump包:yum install -y tcpdump

1、抓取包含172.16.1.122的資料報

#tcpdump -i eth0 -vnn host 172.16.1.122

2、抓取包含172.16.1.0/24網段的資料報

#tcpdump -i eth0 -vnn net 172.16.1.0/24

3、抓取包含埠22的資料報

#tcpdump -i eth0 -vnn port 22

4、抓取udp協議的資料報

#tcpdump -i eth0 -vnn udp

5、抓取icmp協議的資料報

#tcpdump -i eth0 -vnn icmp

6、抓取arp協議的資料報

#tcpdump -i eth0 -vnn arp

7、抓取ip協議的資料報

#tcpdump -i eth0 -vnn ip

8、抓取源ip是172.16.1.122資料報。

#tcpdump -i eth0 -vnn src host 172.16.1.122

9、抓取目的ip是172.16.1.122資料報

#tcpdump -i eth0 -vnn dst host 172.16.1.122

10、抓取源埠是22的資料報

#tcpdump -i eth0 -vnn src port 22

11、抓取源ip是172.16.1.253且目的ip是22的資料報

#tcpdump -i eth0 -vnn src host 172.16.1.253 and dst port 22

12、抓取源ip是172.16.1.122或者包含埠是22的資料報

#tcpdump -i eth0 -vnn src host 172.16.1.122 or port 22

13、抓取源ip是172.16.1.122且埠不是22的資料報

[root@ ftp]#

tcpdump -i eth0 -vnn src host 172.16.1.122 and not port 22

14、抓取源ip是172.16.1.2且目的埠是22,或源ip是172.16.1.65且目的埠是80的資料報。

#tcpdump -i eth0 -vnn srchost172.16.1.2anddstport22 or srchost172.16.1.65anddstport80

15、抓取源ip是172.16.1.59且目的埠是22,或源ip是172.16.1.68且目的埠是80的資料報。

#tcpdump -i eth0 -vnn 'src host 172.16.1.59 and dst port 22' or ' src host 172.16.1.68 and dst port 80 '

16、把抓取的資料報記錄存到/tmp/fill檔案中,當抓取100個資料報後就退出程式。

#tcpdump –i eth0 -vnn -w /tmp/fil1 -c 100

17、從/tmp/fill記錄中讀取tcp協議的資料報

#tcpdump –i eth0 -vnn -r /tmp/fil1 tcp

18、從/tmp/fill記錄中讀取包含172.16.1.58的資料報

#tcpdump –i eth0 -vnn -r /tmp/fil1 host 172.16.1.58

1、想要截獲所有210.27.48.1的主機收到的和發出的所有的資料報:

#tcpdump host 210.27.48.1

2、想要截獲主機210.27.48.1 和主機210.27.48.2 或210.27.48.3的通訊,使用命令:(在命令列中使用 括號時,一定要轉義)

#tcpdump host 210.27.48.1 and (210.27.48.2 or 210.27.48.3 )

3、如果想要獲取主機210.27.48.1除了和主機210.27.48.2之外所有主機通訊的ip包,使用命令:

#tcpdump ip host 210.27.48.1 and ! 210.27.48.2

4、如果想要獲取主機210.27.48.1接收或發出的telnet包,使用如下命令:

#tcpdump tcp port 23 and host 210.27.48.1

5、tcpdump -i eth0 -nn

6、tcpdump -i eth0 -nn -p vrrp

7、tcpdump -i eth0 -nn host 10.10.52.160

也可以使用wireshark來進行抓包。

linux tcpdump命令詳解

tcpdump,就是 dump the traffic on a network,根據使用者的定義對網路上的資料報進行截獲的包分析工具。tcpdump可以將網路中傳送的資料報的 頭 完全截獲下來提供分析。它支援針對網路層 協議 主機 網路或埠的過濾,並提供and or not等邏輯語句來幫助你去掉無...

Linux tcpdump命令詳解

簡介 用簡單的話來定義tcpdump,就是 dump the traffic on a network,根據使用者的定義對網路上的資料報進行截獲的包分析工具。tcpdump可以將網路中傳送的資料報的 頭 完全截獲下來提供分析。它支援針對網路層 協議 主機 網路或埠的過濾,並提供and or not等...

Linux tcpdump 命令使用詳解

在日常工作中,我們總是能遇上各種各樣奇怪的網路問題,比如我這台機器怎麼 ping 不通了,我的 ssh 怎麼又連不上了,這個控制台怎麼又訪問不了了等等各種網路問題,當然有時候可以通過 ping telnet arp 這些命令和工具來排查和解決,但這些都比不上去抓個包來得實在,也就是下面要分享的 tc...