核心選項精簡表
| 選項 | 功能 | 典型組合 |
| -i eth0 | 指定網卡 | -i any (所有介面) |
| -n | 不解析主機名/埠名 (快) | 必加 |
| -c 100 | 抓 100 包退出 | 測試用 |
| -A | ASCII 顯示荷載 | HTTP/SMTP 文本協議 |
| -X | 十六進制+ASCII | 二進制協議分析 |
| -s 0 | 完整封包長度 | 必加 |
| -vv | 詳細協議解析 | 深度分析 |
| -w file.pcap | 寫入檔案 | 離線分析 |
| -r file.pcap | 讀取檔案 | 複盤 |
高頻過濾組合
# 1. 本機 3306 雙向
tcpdump -i eth0 port 3306 -n -s 0
# 2. 僅入向 3306
tcpdump -i eth0 dst port 3306 -n
# 3. 僅出向 3306
tcpdump -i eth0 src port 3306 -n
# 4. 特定主機雙向 + 完整封包存檔
tcpdump -i eth0 host 172.25.34.88 -w capture.pcap -s 0 -n
# 5. 該主機 TCP 7012 埠 + ASCII 輸出
tcpdump -i eth0 tcp port 7012 and host 172.25.34.88 -A -n
# 6. 排除 SSH 干擾
tcpdump -i eth0 not port 22 -n
# 7. 僅看 SYN/FIN/RST 旗標
tcpdump -i eth0 'tcp[tcpflags] & (tcp-syn|tcp-fin|tcp-rst) != 0' -n
封包旗標速讀 (TCP 三次交手/四次揮手)
S = SYN 發起連線
P = PSH 推送資料
F = FIN 關閉連線
. = ACK 確認 (無資料)
R = RST 異常重置
離線分析工作流
- 生產機:
tcpdump -i eth0 -w /tmp/capture.pcap -s 0 -n (後台 nohup ... &)
- 下載:
scp user@host:/tmp/capture.pcap .
- 本地:
wireshark capture.pcap
- Wireshark 進階:
Statistics → Flow Graph 時序圖
Analyze → Expert Information 異常提示
Statistics → TCP Stream Graphs → Round Trip Time RTT 圖
- 右鍵封包
Follow → TCP Stream 重組應用層對話
實戰輸出範例解析
14:44:52.174122 IP 172.25.38.145.49563 > 172.25.34.88.7012: S 1986599379:1986599379(0) win 5840
14:44:52.174249 IP 172.25.34.88.7012 > 172.25.38.145.49563: S 4294961892:4294961892(0) ack 1986599380 win 5792
...
- 第 1 行:Client 發 SYN,初始序號 1986599379,視窗 5840,MSS 1460,支援 SACK/時間戳/窗口縮放。
- 第 2 行:Server 回 SYN+ACK,序號 4294961892,ACK 1986599380 (Client 序號+1)。
- 第 3 行:Client 回 ACK,三次交手完成。
- 後續 P (PSH) 傳資料、F (FIN) 關閉、四次揮手結束。