更新於 2024/12/08閱讀時間約 3 分鐘

tcpdump 使用

tcpdump -i <網路介面>


捕捉流經網路介面的通訊。每行代表一個封包。查看方式範例


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

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.