tcpdump是linux環境下抓包工具,可以對對應網路介面流量進行抓取或者過濾抓取,可以列印輸出到螢幕,也可以儲存到指定檔案。指定的檔案可以用wireshark來開啟檢視。可以快速檢視符合網路介面符合某一條件的抓包,方便我們確定網路問題。
常用引數如下
- i (interface) 指定要監聽的網路介面,如果不指定,tcpdump將預設監聽第一塊網路卡。 - s (snaplen) 指定從每個資料包中讀取的最開始位元組數,預設值為68位元組。 - c (count) 指定要抓取的資料包數量,達到該數量後tcpdump將停止捕獲。 - w (write) 將抓包資料儲存到檔案中。 - r (read) 從檔案中讀取資料包,通常這些資料包是由-w引數產生的。 - n (no-resolve) 不進行域名解析,直接顯示IP地址。 - t (timestamp) 顯示時間戳,通常與-tt或-ttt結合使用,以顯示更詳細的時間資訊。 - X (hex dump) 顯示資料包的十六進位制格式。 - v (verbose) 輸出更詳細的資訊,如IP報文中的TTL和服務型別。 - F (file) 從指定的檔案中讀取表示式,忽略命令列中的表示式。 - e (ethertype) 輸出資料鏈路層的頭部資訊,包括源MAC和目的MAC。 - p (promisc) 將網路卡設定為混雜模式,用於捕獲所有透過的網路資料包。
其中eth0為網路卡,2049為監控埠
tcpdump -i eth0 port 2049
-w mycap.pcap為將輸出寫入到mycap.pcap檔案
tcpdump -s 0 port 2049 -i eth0 -w mycap.pcap
然後使用wireshark開啟mycap.pcap檢視
可以看到如下資訊