
# 用 Linux 指令快速排查網絡延遲問題
做 IT 嘅朋友,成日都會遇到「個網站好慢」「個 server 反應遲鈍」呢類投訴。但係「慢」呢個字好抽象,究竟係網絡慢、DNS 慢、定係 server 本身慢?今日就同大家分享幾個 Linux 指令,幫你一步步定位網絡延遲嘅真正源頭。
## 第一步:用 ping 睇基本延遲
最簡單就係 `ping`,佢會話你知來回時間(RTT)有幾多,仲有冇 packet loss。
ping -c 10 8.8.8.8
輸出入面最緊要睇兩個位:`time=` 後面嘅數值(延遲,單位 ms),同埋最後嘅 `packet loss` 百分比。如果 packet loss 高過 1%,就代表網絡有問題,可能係線路唔穩定或者有干擾。
## 第二步:用 traceroute 搵邊一程慢
`ping` 只係話你知「慢」,但唔知邊一程慢。呢個時候就要用 `traceroute`(或者 `mtr`),佢會逐個 hop 顯示延遲。
traceroute 8.8.8.8
睇輸出嘅時候,留意邊一個 hop 嘅延遲突然飆升。通常延遲係喺你嘅 ISP 出口、或者跨國海底電纜嗰一程先會明顯增加。如果第一個 hop(你嘅 router)已經慢,咁就係內網問題,唔關出面事。
## 第三步:用 mtr 做持續監測
`traceroute` 只係行一次,但網絡延遲好多時係間歇性嘅。`mtr` 結合咗 ping 同 traceroute,會持續更新每個 hop 嘅數據。
mtr -r -c 100 8.8.8.8
`-r` 係 report mode,`-c 100` 係行 100 次。輸出會顯示每個 hop 嘅平均延遲、最差延遲同 packet loss,咁就更容易搵到間歇性問題。
## 第四步:檢查 DNS 解析速度
好多時「慢」其實係 DNS 慢,唔係網絡慢。用 `dig` 可以量度 DNS 查詢要幾耐。
dig google.com
輸出最底會有一行 `Query time: XX msec`,呢個就係 DNS 解析時間。正常應該係幾十 ms 以內,如果超過 100ms,就代表你嘅 DNS server 有問題,可以考慮轉用 1.1.1.1 或者 8.8.8.8。
## 總結
🔗 參考資料:NVD NIST 漏洞資料庫
網絡延遲排查其實有套路:先用 `ping` 確認有冇問題,再用 `traceroute` 同 `mtr` 定位邊一程慢,最後用 `dig` 排除 DNS 因素。掌握呢幾個指令,下次有人投訴「好慢」,你就可以好快搵到答案,唔使估估下。



