捕捉流經網路介面的通訊。每行代表一個封包。查看方式範例
15:45:32.123332 IP 192.168.1.8.12345 > 192.168.1.1.80: Flags [S], seq 0, win 65535, options [mss 1460], length 0
說明
15:45:32.123332 -> 時間戳記。HH:MM:SS.microseconds 格式
IP -> 協定
192.168.1.8.12345 > 192.168.1.1.80 -> 來源 IP 位址.來源連接埠號碼 > 目的 IP 位址.目的連接埠號碼
但有時也會顯示為 .<協定>。例如,nrfdfdg-in-f4.1e100.net.https。nrfdfdg-in-f4.1e100.net 是 IP 網域,https 表示 443。這是由反向 DNS 造成的,如果要關閉,可以加上 -n 選項。(sudo tcpdump -i eth0 -n)。或者,.domain 表示連接埠 53。對應可在 /etc/services 中找到。
docker run alpine:3.21.0 cat /etc/services
Flags [S] -> 旗標
顯示 TCP 標頭的旗標。
S: SYN (開始連線)。
F: FIN (結束連線)。
P: PUSH (優先資料傳送)。
R: RST (重設連線)。
A: ACK (確認回應)。
.: 資料傳輸中。seq 0
序列號碼 (seq) 和確認回應號碼 (ack)。例如 seq 0, ack 1。win 65535
TCP 視窗大小。options [mss 1460]
TCP 選項。
mss: 最大區段大小。length 0
資料長度。length 0 表示控制封包。
tcpdump 可以加入篩選器,只查看特定的封包。範例:只查看 HTTPS 通訊
tcpdump -i eth1 port 443
範例:查看特定來源 IP 位址的封包
tcpdump -i eth1 src 192.168.1.1
範例:只查看特定協定(例如:ICMP)
tcpdump -i eth1 icmp