tcpdump 是 Linux 平台上最經典、最強大的命令列封包擷取工具,基於 libpcap 函式庫,支援豐富的 BPF(Berkeley Packet Filter)過濾語法,廣泛用於網路除錯、效能分析、安全審計。
| 參數 | 說明 |
|---|---|
-i <介面> | 指定監聽網卡(如 eth0、any) |
-nn | 直接顯示 IP/埠號,不做域名解析(加快輸出) |
-A | 以 ASCII 顯示封包內容(適合 HTTP 文字協定) |
-X | 同時以十六進位與 ASCII 顯示 |
-s 0 | 擷取完整封包(預設 262144 bytes,舊版 68 bytes) |
-w file.pcap | 寫入檔案,後續可用 Wireshark 分析 |
-r file.pcap | 讀取檔案離線分析 |
-c N | 擷取 N 個封包後自動停止 |
host 192.168.1.10、src host、dst hostport 80、src port、dst port、portrange 8000-9000tcp、udp、icmp、arpand / &&、or / ||、not / !inbound、outboundsudo tcpdump -i eth0 -nn
sudo tcpdump -i eth0 -nn 'icmp'
sudo tcpdump -i eth0 -nn 'host 192.168.1.231'
sudo tcpdump -i eth0 -nn 'src host 192.168.1.231'
sudo tcpdump -i eth0 -nnA 'port 80'
sudo tcpdump -i eth0 -nnA 'port 80 and src host 192.168.1.231'
sudo tcpdump -i eth0 -nnA '!port 22'
sudo tcpdump -i eth0 -nn -s 0 -w capture.pcap 'port 80 or port 443'
wireshark 自動解壓。CAP_NET_RAW、CAP_NET_ADMIN 權限。-i any 可同時監聽所有介面(含 lo)。-tttt 顯示完整日期時間(ISO 格式)。現場抓包 -w 存檔,再用 scp 拉回工作站,用 Wireshark 圖形化深度分析(流程圖、專家資訊、統計圖表),是最高效的工作流。
熟練 tcpdump 能在無圖形介面的伺服器上快速定位網路問題,是運維與安全人員的必殺技。