tcpdump常用引數詳解

2021-09-07 09:07:38 字數 4423 閱讀 4275

tcpdump常用引數詳解

好久沒有更新我的部落格了,看來自己最近還沒有在放假中回過神來啊,哈哈~是不是也有小夥伴跟我一樣呢?回歸正題,來學習我們今天的linux命令!這個命令在我們的工作中用的頻率雖然不是太高,但是作為乙個運維人員,乙個複合型人才對這個命令還是必須了解一點的喲!

tcpdump是乙個用於擷取網路分組,並輸出分組內容的工具。tcpdump憑藉強大的功能和靈活的擷取策略,使其成為類unix系統下用於網路分析和問題排查的首選工具。 

tcpdump提供了源**,公開了介面,因此具備很強的可擴充套件性,對於網路維護和入侵者都是非常有用的工具。tcpdump存在於基本的linux系統中,由於它需要將網路介面設定為混雜模式,普通使用者不能正常執行,但具備root許可權的使用者可以直接執行它來獲取網路上的資訊。因此系統中存在網路分析工具主要不是對本機安全的威脅,而是對網路上的其他計算機的安全存在威脅。用簡單的話來定義tcpdump,就是:dump the traffic on a network,根據使用者的定義對網路上的資料報進行截獲的包分析工具。 tcpdump可以將網路中傳送的資料報的「頭」完全截獲下來提供分析。它支援針對網路層、協議、主機、網路或埠的過濾,並提供and、or、not等邏輯語句來幫助你去掉無用的資訊。

一.資料鏈路層頭資訊

[root@yinzhengjie ~]# tcpdump -e host 192.168.2.45 | grep "00:0c:29:d4:db:87"

抓取zabbix伺服器的資料報,過濾掉有關本機ip的資料報:(192.168.2.45是zabbix伺服器,後面的mac位址是本機的的mac)

二.arp包的tcpdump輸出資訊

[root@yinzhengjie ~]# tcpdump arp | grep -v "arp, request who-has bogon tell bogon, length 46"

過濾掉無用的資訊

三.抓取2個主機之間的資料報

[root@yinzhengjie ~]# tcpdump host 192.168.2.45  and 172.30.1.2 or 172.30.1.60 

在這裡我截獲的是zabbix伺服器(192.168.2.45)與其中2個agent主機的資料(172.30.1.2,172.30.1.60),下圖是部分資料截圖:

四.想要截獲一台主機除了某個ip的資料報資訊

[root@yinzhengjie ~]# tcpdump host 192.168.2.45   and ! 172.30.1.2

這裡截獲了zabbix伺服器(192.168.2.45),除了172.30.1.2的所有資料報資訊

五.截獲某台機器的ssh服務鏈結資訊,並且不轉換主機名

[root@yinzhengjie ~]# tcpdump -nn -n src host 192.168.2.45 and port 22 and tcp

我這裡是截獲的zabbix伺服器的ssh服務資訊,先敲擊這個命令,然後在去鏈結,就會出現以下資訊。(我的宿主機ip是172.30.1.2)

當然,上面只是能看到ip,如果你還想看到這些ip所對應的mac也是可以的喲

六.過濾源主機和指定的目的主機的資訊

[root@yinzhengjie ~]# tcpdump src host 192.168.2.45 and dst net 172.30.1.0/24

這裡是過濾源主機是192.168.2.45到目的網路(172.30.1.0/24)的資料報.

七.過濾源實體地址的資料報資訊(不能跟ip,僅僅支援mac喲)

八.過濾源主機和目的埠不是telnet的報頭,並匯入到tes.t.txt檔案中:

[root@yinzhengjie ~]# tcpdump src host 192.168.2.45 and dst port not telnet -l > test.txt

我這裡過濾的是192.168.2.45而且目的埠不是telnet的報文喲

九.抓取本地回環網絡卡資訊

十.抓取icmp資料報

[root@yinzhengjie ~]#  tcpdump  -nnn -s 10000 | grep -i icmp

其他常用引數:

-a 以ascii格式列印出所有分組,並將鏈路層的頭最小化。 

-c 在收到指定的數量的分組後,tcpdump就會停止。 

-c 在將乙個原始分組寫入檔案之前,檢查檔案當前的大小是否超過了引數file_size 中指定的大小。如果超過了指定大小,則關閉當前檔案,然後在開啟乙個新的檔案。引數 file_size 的單位是兆位元組(是1,000,000位元組,而不是1,048,576位元組)。 

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

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

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

-d 列印出系統中所有可以用tcpdump截包的網路介面。 

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

-e 用spi@ipaddr algo:secret解密那些以addr作為位址,並且包含了安全引數索引值spi的ipsec esp分組。 

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

-f 從指定的檔案中讀取表示式,忽略命令列中給出的表示式。 

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

-l 使標準輸出變為緩衝行形式,可以把資料匯出到檔案。 

-l 列出網路介面的已知資料鏈路。 

-m 從檔案module中匯入smi mib模組定義。該引數可以被使用多次,以匯入多個mib模組。 

-m 如果tcp報文中存在tcp-md5選項,則需要用secret作為共享的驗證碼用於驗證tcp-md5選選項摘要(詳情可參考rfc 2385)。 

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

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

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

-n 不輸出主機名中的網域名稱部分。例如,『nic.ddn.mil『只輸出』nic『。 

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

-o 不執行分組分組匹配(packet-matching)**優化程式。 

-p 不將網路介面設定成混雜模式。 

-q 快速輸出。只輸出較少的協議資訊。 

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

-s 將tcp的序列號以絕對值形式輸出,而不是相對值。 

-s 從每個分組中讀取最開始的snaplen個位元組,而不是預設的68個位元組。 

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

-t 不在每一行中輸出時間戳。 

-tt 在每一行中輸出非格式化的時間戳。 

-ttt 輸出本行和前面一行之間的時間差。 

-tttt 在每一行中輸出由date處理的預設格式的時間戳。 

-u 輸出未解碼的nfs控制代碼。 

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

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

-w 直接將分組寫入檔案中,而不是不分析並列印出來。

tcpdump常用引數說明

一 學習tcpdump的5個引數 初次使用tcpdump時,使用tcpdump h命令可以看到它有數十個引數。根據我們在運維工作中的經驗,掌握tcpdump以下5個引數即可滿足大部分的工作需要了。i引數。使用 i引數指定需要抓包的網絡卡。如果未指定的話,tcpdump會根據搜尋到的系統中狀態為up的...

tcpdump的使用以及引數詳解

平時分析客戶端和伺服器網路互動的問題時,很多情況下需要在客戶端和伺服器抓包分析報文。一般win下抓包使用wireshark即可,但是linux下就需要用到tcpdump了,下面是一些對於tcpdump的使用說明。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.第二種是確定傳輸方...