用 Linux 指令快速排查網絡延遲 ping traceroute mtr 實戰教學

# 用 Linux 指令快速排查網絡延遲:ping、traceroute、mtr 實戰教學 做 IT 嘅朋友成日都會遇到一個情況:用户投訴「個網好慢」、「連去個 server 成日 timeout」,但係你又唔知問題出喺邊。今日就同大家分享三個最常用嘅 Linux 網絡排查指令,等你可以快速定位延遲問題,唔使再盲摸摸。 ## 點解要識網絡延遲排查 網絡延遲(latency)係指數據由你部機傳去目標...

用 Linux 指令快速排查網絡延遲 ping traceroute mtr 實戰教學 - 文章重點速覽 infographic

# 用 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,慳返好多時間。