服务器连不上、网站打不开、访问很慢——网络问题是运维最常遇到也最让人抓狂的。乱试一通不如系统化排查。本文教你用一套工具和思路,从外到内、逐层定位网络故障的根源。
一、排查思路:分层定位
网络问题按”从连通性到具体服务”的层次排查:能不能ping通(连通性)→ 路由通不通/哪里丢包(路由)→ 端口开没开(服务)→ DNS对不对(解析)→ 具体应用问题。别一上来就瞎猜,按层次走效率最高。
二、ping:最基础的连通性测试
ping 目标IP或域名
看两点:通不通(有回复=基础连通)、延迟和丢包(延迟高或丢包说明网络质量差)。注意:有些服务器禁ping(防火墙拦ICMP),ping不通不一定是真不通,要结合其他工具判断(参考测速篇)。
三、mtr/traceroute:找出路由在哪断/哪慢
ping只告诉你通不通,mtr告诉你路径上哪一跳出了问题:
apt install mtr -y
mtr 目标IP # 实时显示每一跳的延迟和丢包
看输出:如果在某一跳开始持续丢包/延迟飙升,问题就出在那个节点(可能是运营商线路问题)。这也是判断线路质量、验证CN2的工具(全程59.43节点=CN2,参考线路解析篇)。跨境访问慢时,mtr能看出是不是绕路了。
四、ss/netstat:看端口和连接
能ping通但服务连不上?查端口:
ss -tlnp # 看哪些端口在监听、被哪个进程占用
ss -s # 连接统计
确认:你的服务(如80、443、3306)有没有在监听?监听在0.0.0.0(所有网卡)还是只在127.0.0.1(仅本机)?很多”连不上”是因为服务只监听了本机,或者根本没起来(参考502排查篇)。
五、防火墙检查
服务在监听但外部连不上,八成是防火墙/安全组拦了:
ufw status # 看防火墙规则
# 云服务器还要检查控制台的安全组
服务器防火墙 + 云安全组,两层都要放行对应端口(参考防火墙篇)。这是”服务起了却连不上”的最常见原因。
六、dig/nslookup:DNS问题排查
用域名访问不通,但用IP能通?DNS的问题:
dig 域名 # 看解析到的IP对不对
nslookup 域名
dig 域名 +trace # 追踪完整解析链路
确认域名解析到了正确的IP(参考DNS原理篇)。解析没生效、解析错了,都会导致”域名打不开但IP能通”。
七、tcpdump:抓包看真相(进阶)
前面都正常还是有问题?抓包看实际的网络交互:
apt install tcpdump -y
tcpdump -i any port 443 -nn # 抓443端口的包
tcpdump -i any host 目标IP -nn # 抓与某IP的通信
tcpdump能看到连接请求到底有没有到达、有没有响应,是排查疑难网络问题的终极工具。虽然进阶,但关键时刻能看到别的工具看不到的真相。
八、常见故障速查
- 完全连不上(ping不通):服务器宕机?网络中断?或对方禁ping——查控制台状态、用mtr;
- 能ping通但服务连不上:服务没起(ss查)或防火墙拦(ufw/安全组查);
- 域名不通但IP通:DNS问题(dig查);
- 时通时断/很慢:线路质量差、丢包(mtr查),或资源被超售拖累——换优质CN2线路的稳定机器;
- 特定地区访问慢:线路对该地区不优,用测试IP从该地区实测。
结论
网络排查按层次走:ping测连通 → mtr查路由丢包 → ss查端口 → 防火墙检查 → dig查DNS → tcpdump抓包看真相。系统化排查,比乱试高效得多。把这套工具用熟,大部分网络问题你都能自己定位解决。遇到线路质量导致的慢和丢包,优质线路的机器是根本解法(参考测速和线路篇)。