用 Linux 指令查網絡流量:tcpdump 入門教學

# 用 Linux 指令查網絡流量:tcpdump 入門教學 做 IT 嘅朋友成日都會遇到一個情況:個 server 突然變慢,又或者懷疑俾人攻擊,但係又唔知啲流量去咗邊。今日小編就同大家分享一個超實用嘅工具——`tcpdump`,教你用幾條簡單指令去睇住網絡流量,搵出問題所在。 ## 乜嘢係 tcpdump `tcpdump` 係一個命令行嘅封包擷取工具,佢可以直接喺 terminal 入面捕捉...

用 Linux 指令查網絡流量:tcpdump 入門教學 - 文章重點速覽 infographic

# 用 Linux 指令查網絡流量:tcpdump 入門教學

做 IT 嘅朋友成日都會遇到一個情況:個 server 突然變慢,又或者懷疑俾人攻擊,但係又唔知啲流量去咗邊。今日小編就同大家分享一個超實用嘅工具——`tcpdump`,教你用幾條簡單指令去睇住網絡流量,搵出問題所在。

## 乜嘢係 tcpdump

`tcpdump` 係一個命令行嘅封包擷取工具,佢可以直接喺 terminal 入面捕捉網絡卡上面流過嘅每一個封包,再即時顯示出嚟。無論係 troubleshooting、網絡分析,定係保安調查,佢都係 IT 人嘅好拍檔。

最正嘅係,佢唔使裝任何 GUI,喺 remote server 上面都可以即刻用,慳返好多時間。

## 安裝 tcpdump

大部分 Linux distribution 都已經內置咗,如果冇嘅話可以用下面指令裝:

# Debian / Ubuntu
sudo apt update && sudo apt install tcpdump -y

# CentOS / RHEL
sudo yum install tcpdump -y

裝完之後,可以用 `tcpdump –version` 確認一下係咪成功。

## 基本用法:睇實時流量

最簡單嘅用法就係直接行 `tcpdump`,佢會捕捉第一張網絡卡嘅所有流量。不過咁樣會太多嘢,建議加返 filter:

# 睇某個網絡卡嘅流量
sudo tcpdump -i eth0

# 只睇第一個 100 個封包
sudo tcpdump -c 100

## 進階 Filter:搵你想睇嘅嘢

淨係想睇某個 port 或者某個 host 嘅流量?可以用 filter 表達式:

# 只睇 SSH (port 22) 流量
sudo tcpdump -i eth0 port 22

# 只睇某個 IP 嘅流量
sudo tcpdump -i eth0 host 192.168.1.100

# 睇 HTTP 流量(port 80)
sudo tcpdump -i eth0 port 80

# 組合條件:某 IP 加某 port
sudo tcpdump -i eth0 host 192.168.1.100 and port 443

呢啲 filter 係用嚟縮窄範圍,等你可以精準咁搵到想分析嘅嘢,唔使喺一大堆封包入面搵。

## 儲存同讀取封包檔

如果想留低記錄遲啲分析,可以用 `-w` 儲存做 pcap 檔:

# 儲存做 capture.pcap
sudo tcpdump -i eth0 -w capture.pcap

# 之後用 -r 讀返出嚟
sudo tcpdump -r capture.pcap

儲存咗嘅 pcap 檔仲可以畀 Wireshark 開嚟做深入分析,非常方便。

## 實戰例子:查邊個 IP 連入嚟最多

成日有人話 server 俾人掃 port,你可以咁樣做:

# 睇 SYN 封包(連線請求),搵出可疑連線
sudo tcpdump -i eth0 'tcp[tcpflags] & tcp-syn != 0' -nn

`-nn` 係叫佢唔好將 IP 反查做 hostname,行得快好多。

## 總結

🔗 參考資料:NVD NIST 漏洞資料庫

`tcpdump` 係每個 IT 人都應該識用嘅工具。由基本嘅睇流量,到進階嘅 filter 同儲存分析,掌握咗佢之後,遇到網絡問題就唔使再靠估。下次 server 有異樣,不妨開個 tcpdump 睇吓啲流量到底去咗邊,話唔定即刻搵到答案!