用 Linux 指令快速排查網絡延遲問題

# 用 Linux 指令快速排查網絡延遲問題 做 IT 嘅朋友,成日都會遇到「個網站好慢」「個 server 反應遲鈍」呢類投訴。但係「慢」呢個字好抽象,究竟係網絡慢、DNS 慢、定係 server 本身慢?今日就同大家分享幾個 Linux 指令,幫你一步步定位網絡延遲嘅真正源頭。 ## 第一步:用 ping 睇基本延遲 最簡單就係 `ping`,佢會話你知來回時間(RTT)有幾多,仲有冇 pac...

用 Linux 指令快速排查網絡延遲問題 - 文章重點速覽 infographic

# 用 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 因素。掌握呢幾個指令,下次有人投訴「好慢」,你就可以好快搵到答案,唔使估估下。