sudo tcpdump [-i interface] [option(s)] [expression(s)]
sudo tcpdump -i any -v -c 1:
sudo
:需要以管理員權限執行。-i any
指定使用的網路介面。-v:verbose
模式,顯示詳盡的封包資訊。-c 1
count:指定捕捉封包數量,此處為捕捉 1 個封包。功能 | 說明 |
---|---|
tcpdump 定義 | 一個命令列網路協定分析工具,用於擷取和分析網路流量。 |
基本使用語法 | sudo tcpdump [-i interface] [option(s)] [expression(s)] |
捕捉網路介面 | -i 參數,指定要捕捉流量的網路介面。 |
寫入/讀取檔案 | 使用 -w 將封包寫入檔案,使用 -r 讀取封包檔案。 |
詳細程度控制 | 使用 -v 、-vv 或 -vvv 選項以控制輸出的詳細程度。 |
封包數量限制 | -c 選項,用於指定要捕捉的封包數量。 |
禁用名稱解析 | -n 和 -nn 選項以禁用自動名稱解析,維持數字形式的輸出。 |
篩選表達式 | 使用篩選表達式來只擷取指定協定或條件的流量,支持布林運算符。 sudo tcpdump -r packetcapture.pcap -n 'ip and port 80' |
支持的協議 | TCP, IP, ICMP 等。 |
關鍵分析資訊 | - Timestamp時間戳記:記錄到達時間- 套用協議相關指標如 TOS、TTL、Checksum、Flags。 |
優點 | - 無需 GUI,輕量高效。- 常見於系統內建,使用方便。 |
缺點 | - 僅能以文字顯示,對初學者理解不友好。 |
ifconfig
結果會顯示所有活動的網路接口及其配置。-D
當你在命令行中執行 tcpdump 時,添加 -D 標誌可以列出系統上可用的網路介面。這一步通常是用來確認系統上所有可用的捕獲網路介面並選擇合適的一個來實際進行數據捕獲tcpdump -D
sudo tcpdump -i eth0 -v -c5
-w
使用 -w
標誌,您可以將捕獲的網絡數據包寫入或保存到一個封包擷取檔案( packet capture file ),而不是僅僅在終端顯示出來。這非常有用,因為您可以用於後續的分析。在這個指令中,tcpdump 從所有網絡介面捕捉網絡流量,並將其保存到一個名為packetcapture.pcap 的封包擷取檔案中:sudo tcpdump -i eth0 -nn -c9 port 80 -w capture.pcap &
此命令將使用以下選項在背景執行 tcpdump:
-i eth0
:從 eth0 介面捕捉數據。-nn
:不嘗試將 IP 地址或端口解析為名稱。從安全角度來說,這是最佳實踐,因為查詢的數據可能無效。這也可以防止惡意行為者被調查所警告。-c9
:捕捉 9 個數據包後退出。port 80
:僅過濾端口 80 的流量。這是默認的 HTTP 端口。-w
capture.pcap:將捕捉的數據保存到指定的檔案中。&
:這是對 Bash Shell 的指示,用於將命令在背景中運行。curl
curl opensource.google.com
ls -l capture.pcap
-r
使用 -r
旗標,你可以通過指定檔案名稱作為參數來讀取封包捕捉檔案。以下是一個讀取名為 packetcapture.pcap 的檔案的 tcpdump 指令範例: sudo tcpdump -nn -r capture.pcap -v
-nn
:禁用端口和協議名稱查找。-r
:從指定文件中讀取捕獲數據。-v
:顯示詳細的封包數據。
-X
使用 tcpdump 命令過濾 capture.pcap 捕獲文件中的擴展封包數據。sudo tcpdump -nn -r capture.pcap -X
-nn
: 禁用埠及協定名稱查詢。-r
: 從指定的檔案中讀取捕獲的資料。-X
: 以十六進位和 ASCII 格式顯示封包資料。安全分析員可以分析十六進位和 ASCII 輸出,以在惡意軟體分析或法證分析過程中檢測模式或異常。
-v
依據您希望 tcpdump 列出多少封包訊息,可選擇三個詳細程度的層級。層級分別是 -v、-vv 和 -vvv
。每增加一個 v,詳細程度會增加。如果您在尋找如封包 IP 標頭欄位的詳細資料時,verbose 選項會很有幫助。以下是一個以 verbosity 層級讀取 packetcapture.pcap 檔案的 tcpdump 命令範例:sudo tcpdump -r packetcapture.pcap -v
-n
-n
標誌,tcpdump 將會禁用名稱解析功能。因此,IP 地址和端口號會保持以數字形式顯示,而不會轉換為域名或協議名。-nn
則進一步擴展了此功能,使其同時禁用主機名和端口的解析。sudo tcpdump -r packetcapture.pcap -v -n
功能/特色 | Wireshark | tcpdump | 共有功能 |
---|---|---|---|
界面類型 | 圖形化使用者介面 (GUI),適合視覺化分析 | 命令列介面 (CLI),適合快速操作與自動化 | - |
資源使用 | 需要更多系統資源,適合桌面環境 | 資源需求低,適合遠端伺服器或嵌入式系統 | - |
封包分析功能 | 支援深度協議解析,能夠解碼多種協議 | 提供基本封包資訊,無法深入解碼 | 捕捉並分析網路流量 |
封包過濾 | 支援顯示過濾器與捕捉過濾器,適合更細緻的篩選 | 支援 Berkeley Packet Filter (BPF) 語法,適合捕捉時的過濾 | 支援過濾功能(例如 BPF 語法) |
使用場景 | 適合詳細的封包分析與視覺化數據檢查 | 適合快速捕捉封包或自動化數據收集 | 都可用於網路故障排除與安全分析 |
支援的輸出格式 | 支援多種格式(如 pcap、JSON 等),可匯出供其他工具使用 | 主要輸出為 pcap 格式,適合後續分析 | 皆支援 pcap 格式,方便匯出與後續分析 |
開放原始碼 | 是 | 是 | 開放原始碼,免費使用 |