服务器网络出问题怎么办?六大网络故障场景排查技巧轻松拿捏
今天分享一下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 设置
(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 # 测试本地端口,如果通再从其他服务器测试该端口
(3) 分析指引
- 服务没监听端口?程序没起来 or 配置错误
- 监听 127.0.0.1 但别人访问不了?改为监听 0.0.0.0
- 防火墙拦了?记得 firewalld-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 # 查看是否被限制访问
(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
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检测端口,也有可能是域名访问
(3) 分析指引
- 程序监听 127.0.0.1,公网访问不了?
- 防火墙忘开放端口?
云服务商的安全组也要记得查!
6. 想测试带宽是不是太慢?
(1) 现象
- 上下行带宽跑不满
- 用户访问慢,但服务器没压力
(2) 排查命令
iperf3 -s # 一台服务器作为服务端
iperf3 -c <服务端 IP>
(3) 分析指引
- 内网测速看网线/交换机瓶颈
- 跨区域测速可排查运营商/跨境网络问题
场景跟排查命令对照图
场景 | 推荐命令 |
无法访问公网 | ip , ping, ip route, dig |
接口超时/服务不可达 | ss , telnet, iptables |
局域网机器无法互通 | arp , ping, tcpdump |
网站访问慢 | traceroute , curl, netstat |
服务外部无法访问 | ss , firewalld, curl |
网络带宽测试 | iperf3 |
会用命令 ≠ 会排查问题。懂场景,用命令解决问题,才是高手!