| 類型 | 關鍵字 | 範例 |
|---|---|---|
| 類型 | host, net, port | host 192.168.1.1, net 10.0.0.0/8, port 80 |
| 方向 | src, dst | src host 1.2.3.4, dst port 443 |
| 協議 | tcp, udp, icmp, arp, ip, ether | tcp port 22, udp port 53 |
邏輯運算:and / &&、or / ||、not / !。括號需轉義 \( ... \)。
-i eth0 # 指定網卡 -n # 直接顯示 IP/埠號,不做 DNS 反解(快) -c 100 # 抓 100 個封包後退出 -w capture.pcap # 寫入檔案(離線分析) -r capture.pcap # 讀取檔案 -s 0 # 擷取完整封包(預設 96/262144 bytes) -v / -vv # 詳細/更詳細輸出 -A # ASCII 顯示荷載(適合 HTTP/SMTP 等文本協議) -X # 十六進制 + ASCII 顯示
# 1. 抓 eth0 所有封包存檔 tcpdump -i eth0 -w /tmp/eth0.pcap -s 0 # 2. 抓特定主機雙向流量 tcpdump -i eth0 host 192.168.1.20 -w host.pcap # 3. 抓該主機 ICMP tcpdump -i eth0 host 192.168.1.20 and icmp # 4. 排除特定埠(如 SSH 22、代理 8080) tcpdump -i eth0 host 192.168.1.20 and not port 22 and not port 8080 # 5. 抓 VLAN 1 內 HTTP tcpdump -i eth0 vlan 1 and port 80 # 6. 抓 PPPoE 撥號過程(含帳密明文風險) tcpdump -i eth0 pppoes # 7. 後台長期抓取 80 埠 nohup tcpdump -i eth0 port 80 -w /tmp/http.pcap -s 0 & # 8. 僅看發往 80 埠的封包(dst port) tcpdump -i eth0 host 1.2.3.4 and dst port 80 # 9. 僅看來自 80 埠的回應(src port) tcpdump -i eth0 host 1.2.3.4 and src port 80
14:44:52.174122 IP 172.25.38.145.49563 > 172.25.34.88.7012: S 1986599379:1986599379(0) win 584014:44:52.174249 IP 172.25.34.88.7012 > 172.25.38.145.49563: S 4294961892:4294961892(0) ack 1986599380 win 5792 14:44:52.174228 IP 172.25.38.145.49563 > 172.25.34.88.7012: . ack 1 win 1460 14:44:52.174433 IP 172.25.38.145.49563 > 172.25.34.88.7012: P 1:109(108) ack 1 win 1460 ...
S = SYN 發起連線P = PSH 推送資料F = FIN 關閉連線. = ACK 確認(無資料)R = RST 異常重置win:滑動視窗大小(接收緩衝區)mss:最大段長(通常 MTU-40)seq:ack:序號/確認號-s 0 -w file.pcap,完整離線分析,避免終端輸出阻塞或遺漏。-n 關閉 DNS 反解,大幅降低抓包延遲。wireshark capture.pcap,支援流圖、重組、專家資訊等高級功能。