Linux 服务器网络连通性排查:从 ping 到 curl 的四步定位法
服务器突然连不上外网,应用报错、部署卡住,第一反应往往是重启或者反复重试。其实更有效的做法是按链路分层定位:先确认问题出在本机、局域网、运营商链路,还是应用本身。下面这四步从底层到应用层,层层缩小范围,大多数连通性问题都能在十几分钟内找到头绪。
第一步:用 ping 判断问题在哪一层
先测本机回环,再测网关,最后测外网地址,每一步的结论都不一样。
ping -c 4 127.0.0.1
ping -c 4 192.168.1.1
ping -c 4 8.8.8.8
本机回环不通,先看网卡和本地配置;网关不通,问题多在局域网、网线或虚拟机网络模式;只有外网不通,再往上查路由和出口。只 ping 域名还不够,因为域名不通可能是解析问题,也可能是链路问题,两者要分开验证。
第二步:用域名解析确认 DNS 是否正常
如果 IP 能通、域名不通,基本可以锁定 DNS。先看解析结果,再看配置文件。
nslookup example.com
cat /etc/resolv.conf
解析超时或返回错误,先换一个公共解析地址测试,确认是本地配置问题还是上游解析服务问题。修改解析配置前,先把原来的配置记下来,改完立即用域名再测一次,避免越改越乱。
第三步:用路由和链路工具看数据包走到了哪里
ping 通但丢包严重,或者时通时断,往往与路由和链路有关。
ip route show
traceroute example.com
mtr -r -c 10 example.com
逐跳看延迟和丢包位置:如果丢包从某一跳开始并一直持续,问题多在那一跳之后;如果只是中间某一跳不回应,可能是对方禁了探测报文,不一定代表断网。大文件传输失败、小请求正常时,还可以怀疑 MTU,把 MTU 适当调小再测试。
第四步:用 curl 验证应用层是否真正可用
链路通不等于服务可用,端口没开、证书过期、代理配置错误都会让请求失败。
curl -I --connect-timeout 5 https://example.com
curl -v --connect-timeout 5 https://example.com
加上 -v 可以看到连接、证书和响应头,连接超时指向网络或端口问题,证书报错指向证书本身,返回 502 或 504 则多半是后端服务问题。需要走代理的环境,还要核对 http_proxy 和 no_proxy,避免内网地址被错误地送进代理。
排查时顺手记下三件事
每次定位都记录时间、命令和结果:哪一步通、哪一步不通、延迟和丢包是多少。这样换人接手或者向网络管理员反馈时,不用重新从头测一遍。定位到某一层之后再动手改配置,改一处测一次,不要一次改多个地方。
按 ping、解析、路由、应用层这个顺序走,网络连通性排查就不再是碰运气,而是一次有记录、可复现的定位过程。
- 点赞
- 收藏
- 关注作者
评论(0)