教你用 tcpdump 即場捉包:五分鐘搵出邊部機扯爆你條網絡
做 IT 嘅你,一定遇過呢種情況:老細問「點解個網咁慢?」、同事話「個 file server 成日 timeout」,但你又唔知係邊部機出事。與其慢慢估,不如直接拎把 tcpdump 出嚟,睇下個網絡真係發生咩事。
今次就教你用 tcpdump 即場捉包,五分鐘內搵出邊部機扯爆你條網絡。
tcpdump 係咩?點解要識用
tcpdump 係 Linux 上最常用嘅封包擷取工具,佢可以即時睇到流經你部機張網卡嘅所有 network traffic。無論係查網絡問題、分析攻擊、定係 debug 應用程式,tcpdump 都係 IT 人必備嘅技能。
最重要係:佢唔使裝 GUI,直接喺 terminal 行就得,SSH 入去部 server 即刻用到。
基本用法:先睇下張卡收緊咩
首先,睇下你有邊幾張網卡:
ip link show
或者舊式
ifconfig -a
然後直接行 tcpdump 睇下流量(記住要 root 權限):
sudo tcpdump -i eth0
咁樣會即時噴一大堆資料出嚟,快到你睇唔切。所以一開始我哋要識得加 filter。
搵出邊部機扯爆網絡:搵「流量大戶」
最直接嘅方法,就係睇下邊個 IP 產生最多 connection。用呢個 command,淨係睇 SYN 包(即係建立連線嘅第一個包):
sudo tcpdump -i eth0 -n 'tcp[tcpflags] & (tcp-syn) != 0'
但咁樣仲係好多。想統計邊個 IP 最多連線,可以用 `-c` 限數量,再 pipe 去統計:
sudo tcpdump -i eth0 -n -c 10000 'tcp[tcpflags] & (tcp-syn) != 0' 2>/dev/null \
| awk '{print $3}' \
| cut -d. -f1-4 \
| sort | uniq -c | sort -rn | head -20
呢個 command 會捉 10000 個 SYN 包,統計每個來源 IP 出現幾多次,然後排最頭嗰 20 個。通常排第一嗰部機,就係扯爆你網絡嘅元兇——可能係中咗毒、跑緊 P2P,或者有隻壞咗嘅 device 不斷重連。
睇清楚佢喺度做緊咩
搵到可疑 IP(假設係 192.168.1.100),跟住睇佢同邊度通訊:
sudo tcpdump -i eth0 -n host 192.168.1.100
想再縮窄,只睇佢去邊個 port:
sudo tcpdump -i eth0 -n 'src host 192.168.1.100 and port 443'
如果見到佢不斷連去一堆奇怪嘅外部 IP、或者 port 掃描式咁試,咁就九成係中咗惡意程式。
進階:直接儲起做分析
即場睇始終有限,最專業嘅做法係儲低個 pcap 檔,之後慢慢用 Wireshark 分析:
sudo tcpdump -i eth0 -w /tmp/capture.pcap -c 50000
之後可以將個 file 抄返落自己電腦,用 Wireshark 開,睇 statistics 就知道邊部機流量最大。
如果淨係想捉某一部機,加個 host filter:
sudo tcpdump -i eth0 -w /tmp/suspect.pcap host 192.168.1.100
幾個救命嘅 filter
記住呢幾個 filter,日常查嘢夠用:
# 只睇某個 port
sudo tcpdump -i eth0 port 80
只睇某部機
sudo tcpdump -i eth0 host 192.168.1.100
唔睇 SSH(驚捉到自己)
sudo tcpdump -i eth0 not port 22
只睇 ICMP(ping)
sudo tcpdump -i eth0 icmp
總結
tcpdump 係查網絡問題嘅第一把刀。學識基本 filter,再加埋個統計技巧,你已經可以喺五分鐘內搵出扯爆網絡嘅元兇。下次老細再問「個網咁慢」,你直接捉包俾佢睇,即刻專業晒。
🔗 參考資料:NVD NIST 漏洞資料庫
記住一個重點:捉包嘅第一步永遠係縮窄範圍,用 host、port、protocol filter 收窄到你想睇嘅嘢,先唔會被海量資料淹沒。
#server #SSH #Linux #技術分享 #network




