
# 用 Linux 指令快速排查網絡延遲:ping、traceroute、mtr 三件套實戰教學
做 IT 嘅朋友,成日都會遇到「個網好慢」「連去某個 server 成日 timeout」呢類投訴。與其靠估,不如學識用 Linux 入面三個最基本嘅網絡診斷指令,幾分鐘就揾到問題根源。今日就同大家由淺入深,逐個指令拆解,仲有實戰例子俾你跟住做。
## 點解要識 ping、traceroute、mtr?
網絡延遲(latency)同封包遺失(packet loss)係最常見嘅兩大元兇。ping 幫你測試基本連通性,traceroute 幫你睇清楚封包經過邊啲節點,而 mtr 就係兩者嘅結合體,可以持續監察每一跳嘅表現。三件套一齊用,基本上九成網絡問題都無所遁形。
## ping:最基本嘅連通性測試
ping 係最入門嘅指令,用 ICMP 協定去測試目標主機係咪回應得到。基本用法好簡單:
ping -c 5 8.8.8.8
`-c 5` 代表只發 5 個封包就停,唔加嘅話會一直 ping 落去。輸出入面最緊要睇兩個數字:`time=` 後面嘅延遲值,同埋最後統計入面嘅 `packet loss`。如果 packet loss 係 0%,代表連線穩定;如果去到 10% 以上,就代表中間有節點出問題。
想測試大封包(例如 MTU 問題),可以加 `-s` 參數:
ping -c 5 -s 1400 8.8.8.8
## traceroute:睇清楚封包行邊條路
traceroute 會逐跳(hop)顯示封包由你部機去到目標主機,中間經過邊啲路由器。用法:
traceroute 8.8.8.8
輸出會列出每一跳嘅 IP 同延遲。如果你見到某一跳開始延遲突然飆升,或者出現 `* * *`(代表冇回應),咁嗰一跳就係樽頸位。不過要留意,有啲路由器會設定唔回應 ICMP,所以見到 `* * *` 唔一定代表壞,要配合其他測試一齊睇。
## mtr:持續監察嘅終極工具
mtr 係我最推薦嘅工具,因為佢結合咗 ping 同 traceroute 嘅優點,仲會持續更新每一跳嘅數據。用法:
mtr -r -c 50 8.8.8.8
`-r` 代表報告模式(report mode),`-c 50` 代表發 50 個封包。輸出會顯示每一跳嘅 loss%、平均延遲、最差延遲等。呢個先係真正揾到間歇性問題嘅方法,因為單次 ping 可能啱啱好冇事,但 mtr 持續監察就會捉到嗰啲「時好時壞」嘅情況。
## 實戰:點樣判斷問題喺邊度
假設你 ping 一個網站,發現延遲好高。跟住做以下步驟:
1. 先 ping 自己部機嘅 gateway,確認本地網絡冇問題
2. 再 traceroute 去目標,睇下邊一跳開始變慢
3. 最後用 mtr 持續監察,確認係咪間歇性問題
如果問題出喺你 ISP 嗰一跳,咁就係你控制唔到嘅範圍,要揾 ISP 處理;如果出喺目標 server 嗰邊,就要通知對方。最緊要係有數據支持,唔好靠估。
## 總結
🔗 參考資料:NVD NIST 漏洞資料庫
ping、traceroute、mtr 呢三個指令,係每個 IT 人都應該熟到爛嘅基本功。下次再有人投訴「個網好慢」,你就唔使再估估下,直接開 terminal 行幾條指令,用數據講嘢。記住,網絡診斷最忌諱就係冇數據亂估,有咗呢三件套,你已經贏咗一半。



