服务器网络出问题怎么办?六大网络故障场景排查技巧轻松拿捏

今天分享一下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 或使用 digDNS 服务器写成内网地址却没服务?改成 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防火墙拦了?记得 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 # 查看是否被限制访问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 -l1.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

会用命令 ≠ 会排查问题。懂场景,用命令解决问题,才是高手!

阅读剩余
THE END