
# 用 Linux 指令快速排查網絡延遲:ping、traceroute、mtr 實戰教學
做 IT 嘅朋友成日都會遇到一個情況:用户投訴「個網好慢」、「連去個 server 成日 timeout」,但係你又唔知問題出喺邊。今日就同大家分享三個最常用嘅 Linux 網絡排查指令,等你可以快速定位延遲問題,唔使再盲摸摸。
## 點解要識網絡延遲排查
網絡延遲(latency)係指數據由你部機傳去目標 server 再返嚟所需嘅時間。延遲高唔一定代表斷線,但係會令到應用程式反應慢、視像會議窒、甚至 database 查詢 timeout。識得用指令去量度延遲,係每個 IT 人嘅基本功。
## 第一步:ping 測試基本連通性
`ping` 係最簡單直接嘅工具,用嚟測試你部機同目標之間係咪通、延遲大概幾多。
ping -c 5 8.8.8.8
上面呢句會 send 5 個 ICMP packet 去 Google DNS,然後顯示每個 packet 嘅往返時間(RTT)。輸出大概係咁:
64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=12.3 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=11.8 ms
如果 `time` 數值穩定喺 10-20ms,代表本地網絡正常。如果突然飆到幾百 ms,或者出現 packet loss,就代表有問題。
## 第二步:traceroute 揾出瓶頸位置
`ping` 只係話你知「慢」,但係唔會話你知「邊度慢」。呢個時候就要用 `traceroute`,佢會逐個 hop 顯示數據經過嘅每一部 router,等你知道延遲喺邊一段開始飆升。
traceroute 8.8.8.8
輸出會列出每一跳嘅 IP 同延遲:
1 192.168.1.1 (192.168.1.1) 1.2 ms
2 10.0.0.1 (10.0.0.1) 5.4 ms
3 203.0.113.1 (203.0.113.1) 45.8 ms
如果你見到某一跳開始延遲突然由 5ms 跳到 100ms,咁問題就出喺嗰一段網絡。
## 第三步:mtr 結合兩者做持續監測
`mtr` 係 `ping` 同 `traceroute` 嘅結合體,佢會持續咁 ping 每一跳,仲會統計 packet loss 百分比,係排查間歇性延遲嘅神器。
mtr -r -c 10 8.8.8.8
`-r` 代表 report mode(輸出一次就停),`-c 10` 代表 send 10 個 packet。輸出會顯示每一跳嘅 loss%、平均延遲、最差延遲等,一目了然。
## 實戰小貼士
– 如果第一跳(你部 router)延遲已經好高,問題喺你本地網絡
– 如果中間某一跳 loss 好高但後面又正常,可能只係嗰部 router 唔回應 ICMP,唔使太擔心
– 用 `mtr` 跑 5-10 分鐘先可以捉到間歇性問題
🔗 參考資料:NVD NIST 漏洞資料庫
掌握呢三個指令,下次用户投訴網絡慢,你就可以快速判斷問題係本地、ISP 定係目標 server,慳返好多時間。



