用 Linux 內建工具偵測網絡問題:由 ping 到 traceroute 嘅完整排錯流程

# 用 Linux 內建工具偵測網絡問題:由 ping 到 traceroute 嘅完整排錯流程 做 IT 嘅,最怕就係用户突然彈一句「個網好慢」或者「上唔到網」。呢啲問題聽落簡單,實際排錯時如果冇一套系統化嘅流程,好容易喺度亂咁試,浪費成個鐘都揾唔到 root cause。今次想同大家分享一套我用咗好多年嘅 Linux 網絡排錯流程,全部用內建工具,唔使裝任何嘢,由最簡單嘅 ping 一路查到 ...

用 Linux 內建工具偵測網絡問題:由 ping 到 traceroute 嘅完整排錯流程

做 IT 嘅,最怕就係用户突然彈一句「個網好慢」或者「上唔到網」。呢啲問題聽落簡單,實際排錯時如果冇一套系統化嘅流程,好容易喺度亂咁試,浪費成個鐘都揾唔到 root cause。今次想同大家分享一套我用咗好多年嘅 Linux 網絡排錯流程,全部用內建工具,唔使裝任何嘢,由最簡單嘅 ping 一路查到 traceroute,逐步收窄問題範圍。

網絡排錯點解要分層?

網絡問題通常可以分做幾層:本機設定 → 內網連線 → 閘道(Gateway)→ DNS 解析 → 對外路由。每一層用唔同工具去驗證,逐層排除,先唔會好似盲頭烏蠅咁。記住一個鐵則:先確認自己部機,再向外擴展,唔好一嚟就 ping 對面,因為如果自己張網卡都未著,ping 乜都係假。

Step 1:確認本機網卡狀態

第一步永遠係睇嚇自己部機張網卡有冇正常拎到 IP。用 `ip addr` 睇清楚:

ip addr show

你要留意兩樣嘢:第一,網卡有冇 `UP` 狀態;第二,有冇拎到一個合法嘅 IP(唔係 169.254.x.x 嗰種 APIPA 自動私有地址,出現呢個代表 DHCP 拎唔到嘢)。如果見到 `NO-CARRIER`,就係物理層問題——網線鬆咗、Switch port 死咗或者網卡壞咗。

如果想一次過睇齊 IP、Gateway、DNS 三個關鍵資料,用:

ip route
cat /etc/resolv.conf

`ip route` 入面 `default via 192.168.1.1` 嗰行就係你嘅預設閘道。如果呢行唔存在,就算你 IP 拎到,出街都一定唔通。

Step 2:ping 閘道(內網測試)

確認咗本機設定後,下一步係 ping 自己嘅閘道,測試內網連線正唔正常:

ping -c 4 192.168.1.1

睇幾樣嘢:有冇 `Reply`(回應)、`time` 值幾多、有冇 `packet loss`。如果 time 值穩定喺 1ms 以下,內網就冇事;如果 time 值突然飆到幾十 ms 或者出現 packet loss,好可能係內網有 congestion,或者 Switch 有問題。

Step 3:DNS 解析測試

好多人上唔到網,其實根本唔係網絡斷,而係 DNS 解析唔到。呢個係最常見但最容易被忽略嘅原因。用 `nslookup` 或者 `dig` 測試:

nslookup google.com
dig google.com @8.8.8.8

上面兩條指令嘅分別好重要:第一條用你本機設定嘅 DNS server,第二條強制用 Google 嘅 8.8.8.8。如果第一條 fail 但第二條成功,就證明係你自己個 DNS server 有事,唔係網絡問題。呢個測試可以幫你慳返好多時間。

Step 4:traceroute 追蹤路由

如果 ping 閘道通,DNS 又冇事,但上某個特定網站就係唔得,咁就要用 `traceroute` 追蹤數據包行咗邊條路,睇嚇喺邊一跳斷:

traceroute google.com

輸出會逐跳顯示,每一行代表一個路由器。你要揾嘅係:喺邊一跳開始出現 `* * *`(超時無回應)。如果頭幾跳正常,去到某一跳突然全部 `*`,代表嗰個位置有問題——可能係 ISP 之間嘅 routing 出事,又或者係對面防火牆 block 咗 ICMP(呢個唔一定代表真係斷,只係人哋唔回 ICMP 啫)。

`mtr` 係 traceroute 嘅進階版,會持續追蹤同埋統計每一跳嘅 packet loss,排錯時更加好用:

mtr google.com

Step 5:測試對外連線同 TCP 端口

最後,如果係某個特定服務(例如網站、email)連唔到,就要測試嗰個 TCP 端口通唔通。用 `nc`(netcat)或者 `telnet`:

nc -zv example.com 443

`-z` 代表只掃描唔發數據,`-v` 顯示詳細結果。如果見到 `succeeded`,代表 TCP 層連到;如果一直卡住或者 timeout,就係嗰個端口被 block,或者服務冇著。

總結:一套唔會亂嘅流程

綜合嚟講,我建議跟呢個次序去排錯:

1. `ip addr` + `ip route` → 睇本機設定
2. `ping` 閘道 → 測內網
3. `nslookup`/`dig` → 測 DNS
4. `traceroute`/`mtr` → 追蹤路由
5. `nc` → 測特定端口

🔗 參考資料:NVD NIST 漏洞資料庫

呢個流程嘅精髓係「由內到外、由淺入深」。每次都從本機開始驗證,逐層向外擴展,咁樣先可以喺最短時間內鎖定問題喺邊一層,而唔係漫無目的咁試。下次再遇到「個網好慢」,不妨跟住呢套流程行一次,你會發現排錯其實可以好有系統。

#IT教學 #技術分享 #Linux #防火牆

用 Linux 內建工具偵測網絡問題:由 ping 到 traceroute 嘅完整排錯流程 - 文章重點速覽 infographic