
# 用 Linux 指令快速排查網絡延遲問題:ping、traceroute、mtr 實戰教學
做 IT 嘅朋友,成日都會遇到「個網站好慢」「個 server 連唔到」呢類投訴。好多時問題唔係出喺你部機,而係中間某一段網絡。今日就同大家分享三個最常用嘅 Linux 網絡排查指令,等你可以快速定位延遲同斷線嘅源頭。
## 點解要識 ping、traceroute、mtr?
網絡問題最煩嘅地方,就係中間經過好多節點(router、switch、ISP 骨幹),任何一節出問題都會影響成條路徑。單靠「上唔到網」呢句投訴,你根本唔知邊度出事。呢三個指令就係幫你逐段檢查嘅利器。
## 第一步:ping 檢查基本連通性
`ping` 係最基本嘅工具,用嚟測試你同目標主機之間通唔通,同埋睇到來回延遲(RTT)。
ping -c 10 google.com
`-c 10` 代表只發 10 個封包就停。輸出會顯示每個封包嘅延遲時間,最後有統計:
10 packets transmitted, 10 received, 0% packet loss, time 9012ms
rtt min/avg/max/mdev = 12.3/15.6/28.9/4.2 ms
**重點睇兩樣嘢:**
– **packet loss** — 如果有封包遺失,代表網絡唔穩定或者有 congestion
– **mdev** — 延遲波動幅度,mdev 大代表延遲忽高忽低,可能係線路質素差
如果 ping 完全冇回應,先確認目標主機係咪真係開咗 ICMP 回應(有啲 server 會 block ping)。
## 第二步:traceroute 睇路徑
`traceroute` 會顯示封包由你部機去到目標,中間經過邊啲節點,同埋每一跳嘅延遲。
traceroute google.com
輸出類似:
1 192.168.1.1 (192.168.1.1) 1.2 ms 1.1 ms 1.3 ms
2 10.0.0.1 (10.0.0.1) 5.4 ms 5.2 ms 5.6 ms
3 203.123.45.67 (203.123.45.67) 12.8 ms 13.1 ms 12.9 ms
...
**點樣讀:**
– 每一行代表一跳(一個節點)
– 如果某一跳開始延遲突然飆升,嗰度就係樽頸位
– 如果出現 `* * *`,代表嗰個節點唔回應 ICMP,可能係防火牆擋咗,未必係斷線
## 第三步:mtr 結合兩者(最推薦)
`mtr` 係 ping + traceroute 嘅結合體,會持續發封包,實時顯示每一跳嘅延遲同遺失率,比單次 traceroute 有用得多。
mtr --report google.com
或者用互動模式(可以實時睇住變化):
mtr google.com
`–report` 模式會跑一段時間(預設 10 個 cycle)然後出總結,每一跳都有:
– **Loss%** — 封包遺失率
– **Snt** — 已發封包數
– **Avg / Best / Wrst** — 平均 / 最佳 / 最差延遲
**mtr 嘅好處:** 因為佢持續發封包,可以捕捉到間歇性嘅問題(例如每幾秒先 lag 一下),呢啲單次 traceroute 好易走漏眼。
## 實戰:點樣判斷問題喺邊度?
假設你 ping 一個海外 server 好慢,用 mtr 睇到:
5 香港出口節點 15 ms 0% loss
6 國際骨幹 180 ms 2% loss ← 延遲突然飆升
7 目標 ISP 190 ms 0% loss
咁好明顯,問題出喺第 6 跳嘅國際骨幹,即係你 ISP 同海外之間嘅線路。呢個時候你可以:
1. 聯絡你嘅 ISP 反映
2. 或者考慮換一條線路 / 用 CDN 加速
## 總結
三個指令各有用途:
– **ping** — 快速確認通唔通、延遲幾多
– **traceroute** — 睇路徑、揾樽頸
– **mtr** — 持續監測,捕捉間歇性問題
🔗 參考資料:NVD NIST 漏洞資料庫
下次遇到網絡投訴,唔好淨係答「我幫你重啟 router」,試下用呢三個指令,好快就揾到真正嘅源頭。做 IT 最緊要係用數據講嘢,而唔係靠估。



