前言
Tcpdump
是用于分析網絡和查找相關網絡問題的出色工具。它會在數據包經過時捕獲數據包,并向您顯示網絡上正在發生的事情和傳入情況。該命令的輸出顯示在 STDOUT
上,也可以存儲在文件中。
感謝開發人員,他們將Tcpdump
保留為開源項目。它可以在Unix和Linux系統上免費獲得。視窗有一個“微海外杠TCPDUMP
用于視窗”變體,并帶有相關的價格標簽。
tcpdump
有一長串可用的選項。在本文中,我將重點介紹經常使用的核心選項。
檢查可用接口
要檢查要捕獲的所有可用接口,請使用-D
標志作為:
sudo tcpdump -D
這將列出系統上的所有接口,包括無線和有線接口等。該標志也可以獲得相同的功能:--list-interfaces
sudo tcpdump --list-interfaces
在這里插入圖片描述
捕獲特定接口的數據包
在不使用任何選項的情況下,Tcpdump
將掃描所有接口。該標志捕獲來自特定接口的流量:-i
tcpdump -i <target-interface>
將 替換為要掃描的接口的名稱。例如,在 接口 的情況下,此命令將作為:target-interfaceeth0
sudo tcpdump -i eth0
注意:從現在開始,我將使用 or 作為目標接口。因此,無論您在何處看到 -i 標志,它都將伴隨界面或 eth0
eth1
eth0
eth1
預設捕獲計數
該標志可用于預設要捕獲的數據包數-c
例如,我們將此值設置為 4
以捕獲四個數據包。在本例中,該命令將為:
sudo tcpdump -c 4 -i eth0
如果未指定計數,則將使用組合鍵或 手動中斷捕獲操作。ctrl+cctrl+z
在下面的文章中,我將根據需要將標志與其他標志一起添加。這將有助于我們清晰,輕松地理解命令的輸出。-c
獲取詳細輸出
要獲取命令的詳細輸出,可以使用標志:tcpdump-v
sudo tcpdump -c 6 -v -i eth0
您可以使用更多標志 as 或 進一步提高詳細程度。這將在終端上產生更詳細的輸出:-v
-vv
-vvv
sudo tcpdump -vv -i eth0
以 ASCII 格式打印捕獲的數據
有時,我們可能要求 Tcp
轉儲輸出采用十六進制或 ASCII 格式。我們可以使用 ASCII 格式以及 ASCII 和十六進制格式的選項來解決這個問題:-A-
XX
sudo tcpdump -XX -i eth0
在這里插入圖片描述
捕獲從特定源 IP 發送的數據包
如果要檢查來自特定源 IP 地址的流量,請使用以下命令:
sudo tcpdump -i eth0 src address>
讓我們將源 IP 作為并查看流量的詳細信息:192.168.56.11
sudo tcpdump -i eth1 -c 5 src 192.168.56.11
此處的計數 5 將僅捕獲前五個數據包。
捕獲發送到特定目標 IP 的數據包
如果要檢查發送到特定目標 IP 地址的流量,請使用以下命令:
sudo tcpdump -i eth0 dst address>
讓我們將目標 IP 作為并查看流量的詳細信息:192.168.56.11
sudo tcpdump -i eth1 -c 5 dst 192.168.56.11
在這里插入圖片描述
將過濾選項與 Tcp 轉儲結合使用
這是縮小捕獲數據范圍以進行檢查的好方法。這將消除不必要的流量并簡化您的工作。為此,您可以根據主機、端口、協議和其他條件篩選流量。
讓我們看看其中的一些:
端口號
如果要根據端口號過濾流量,例如端口 22
,則按如下方式執行命令:tcpdump
sudo tcpdump -i eth0 port 22
此命令將捕獲 TCP 和 UDP 流量。
協議
與端口指令類似,該指令根據特定流量過濾數據包捕獲。在這里,您可以使用協議名稱或協議編號作為參數值:proto
sudo tcpdump -i eth0 proto tcp
sudo tcpdump -i eth0 proto 6
令您驚訝的是,上面的兩個命令是等效的。這是因為 是 TCP 的協議編號。6
主機過濾器
host
參數只是使用其 IP 過濾來自特定主機的流量:
sudo tcpdump -i eth0 host 192.168.56.10
這將捕獲所有流量并從此主機流出。有趣的是,您可以將多個過濾器應用于主機,以針對特定類型的數據包流量。
例如:
sudo tcpdump -i eth1 -c 50 “(host 192.168.56.11) and (port 443 or port 80)"
在這里,我將不同的過濾規則合并到一個規則中。您可以看到此規則是過濾和流量。這是因為該規則包含端口 80
和 443
(公共網絡端口)的篩選器。http
https
保存捕獲的數據
如果要將捕獲的數據存儲在文件中,可以這樣操作。
sudo tcpdump -i eth0 -c 10 -w my_capture.pcap
將數據包計數保持在較小的值;否則,您可能需要手動停止該過程。
讀取捕獲的數據
您可以使用存儲在文件中的數據與Wireshark
或任何其他圖形網絡協議分析器進行分析。.pcap
您可以使用 tcp
轉儲本身來讀取它。
tcpdump -r my_capture.pcap
上面的屏幕截圖顯示了上述文件的數據。my_capture.pcap
結語
希望您對如何使用不同的方式使用tcpdump命令有一個很好的想法。當您從遠程無外設計算機捕獲數據包時,這是最佳選擇。
如果您想要一種更直觀的方式來理解數據包捕獲,請嘗試使用Wireshark。
-
網絡
+關注
關注
14文章
7386瀏覽量
88206 -
文件
+關注
關注
1文章
551瀏覽量
24559 -
數據包
+關注
關注
0文章
238瀏覽量
24244
發布評論請先 登錄
相關推薦
評論