網路故障場景排查技巧,作為維運一定要遇事不慌!

今天就來分享Linux網路排查的常見故障場景及使用的指令工具。
當你的伺服器連不上、介面報錯、頁面載入慢、連接埠打不開…你可能第一時間會問:
“到底哪出了問題?”
別慌!看看下面6 大常見網路故障場景,告訴你如何用Linux 指令快速定位問題、高效排查故障!
本文只講伺服器網路排查思路,不講網路設備排查,那是網工的活。
1. 伺服器存取不了公網了
(1) 現象
- ping www.baidu.com 無回應
- curl 報錯 Could not resolve host
(2) 排查指令
ip a # 查看是否有 IP 地址
ip route # 查看是否有默认网关
ping 8.8.8.8 # 判断是否能 ping 通外网 IP
cat /etc/resolv.conf # 检查 DNS 设置
- 1.
- 2.
- 3.
- 4.
(3) 分析指引
- ip a 看到沒有IP?網路卡可能沒啟用,重新啟動下網路卡
- ping IP 通但網域不通 → DNS 問題,檢查 /etc/resolv.conf 或使用 dig
- DNS 伺服器寫成內網位址卻沒服務?改成 8.8.8.8 試試!
也有可能內網環境限制訪問,這些指令都沒用,趕緊找網路工程師,他幹的。
2. 服務正常但連不上
(1) 現象
- 網頁/介面請求逾時
- 程式無法連接到某個連接埠
(2) 排查指令
netstat -lntup # 检查服务是否监听端口,或者用ss
netstat -lntup | grep 8080 # 查是否是你要的程序
iptables -L -n # 检查是否被防火墙挡了
firewall-cmd --list-all # 如果防火墙是firewalld就用这个,ubuntu使用ufw做防火墙
telnet localhost 8080 # 测试本地端口,如果通再从其他服务器测试该端口
- 1.
- 2.
- 3.
- 4.
- 5.
(3) 分析指引
- 服務沒監聽埠?程式沒起來or 設定錯誤
- 監聽127.0.0.1 但別人訪問不了?改為監聽 0.0.0.0
- 防火牆攔了?記得 firewall-cmd 或 ufw 檢查,還有雲端伺服器的安全性群組
都沒啥問題,那就重啟,最後大殺招。
3. 同一區域網路不能互ping
(1) 現象
- A ping B 不通,但B 能ping 網關
- 內網通訊失敗
(2) 排查指令
ip a # 查看IP
ip route # 查看路由
ping <对方 IP> # 互ping
arp -a # 看看ARP缓存
tcpdump -i eth0 icmp # 抓到看看
cat /etc/hosts.deny # 查看是否被限制访问
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
(3) 分析指引
- 子網路遮罩錯了→ 路由計算出錯
- 查看ARP 快取確認是否解析了MAC
- 抓包看有沒有ICMP 請求發出或回應(tcpdump)
- hosts.deny檔案也有可能攔截
還有就是網路工程師禁ping了,怎麼排查都沒用,找他,甩鍋技能得用上。
4. 網站訪問慢,頻繁卡頓
(1) 現象
- 使用者頻繁回饋網站慢、回應慢
- 日誌報 504 Gateway Timeout
(2) 排查指令
ping www.lige.com -c 4 # 先ping一下,测试连通性
traceroute www.liege.com # 跟踪路由,看看经过哪些设备
curl -w "@curl-format.txt" -o /dev/null -s http://your_site # curl检测
netstat -antp | grep ESTABLISHED | wc -l
- 1.
- 2.
- 3.
- 4.
curl-format.txt 可以列印請求耗時詳情(TTFB、連線時間等)。
(3) 分析指引
- ping 很高延遲?線路問題
- traceroute 某一跳延遲高/超時?網路瓶頸點
- curl 看的是DNS → 連線→ 首包時間
終極殺招,重啟服務看看效果,不行開發優化。
5. 服務監聽正常,但外部存取不了!
(1) 現象
- 服務正常監聽,但別人訪問不了
- curl localhost OK,但curl 公網IP 不通
(2) 排查指令
netstat -lntup | grep 端口 # 查看端口监听情况
curl localhost:端口 # 本地端口检测
curl 公网IP:端口 # 外网检测
iptables -L
firewalld-cmd --list-all # 防火墙检测
telnet IP 端口 # 访问处telnet检测端口,也有可能是域名访问
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
(3) 分析指引
- 程式監聽 127.0.0.1,公網訪問不了?
- 防火牆忘開放埠?
- 雲端服務商的安全群組也要記得檢查!
6. 想測試頻寬是不是太慢?
(1) 現象
- 上下跑帶寬跑不滿
- 用戶訪問慢,但伺服器沒壓力
(2) 排查指令
iperf3 -s # 一台服务器作为服务端
iperf3 -c <服务端 IP>
- 1.
- 2.
(3) 分析指引
- 內網測速看網路線/交換器瓶頸
- 跨區域測速可排除營運商/跨境網路問題
場景跟排查指令對照圖:
場景 | 推薦指令 |
無法存取公網 | ip , ping, ip route, dig |
介面逾時/服務不可達 | ss , telnet, iptables |
區域網路機器無法互通 | arp , ping, tcpdump |
網站訪問慢 | traceroute , curl, netstat |
服務外部無法存取 | ss , firewalld, curl |
網路頻寬測試 | iperf3 |
會用指令≠ 會排查問題。懂場景,用指令解決問題,才是高手!