Linux 网络排查入门:ping、curl 与 ss 怎么用
网站打不开、接口调不通的时候,很多人第一反应是重启服务、重启服务器。其实大多数网络问题都不用“重启玄学”,按顺序查一遍,往往几分钟就能定位到哪一层出了问题。动手之前先问清楚现象:是所有网站都打不开,还是只有一个域名打不开?是偶尔超时,还是每次都失败?“全不通”大概率是本机出口网络的问题,“只有它不通”就重点查这个域名和这台服务器。下面这套思路新手也能照着走:先用 ping 看路通不通,再用 curl 看 HTTP 走到了哪一步,接着用 ss 看服务有没有在监听,最后用 dig 查域名解析,层层缩小范围。
一、第一步:ping——先看路通不通
ping 是最基础的连通性测试,它用 ICMP 报文去探路,能告诉你目标主机到不到得了、丢包严不严重、延迟大不大。
ping -c 4 www.example.com
ping -c 20 8.8.8.8
看结果要看三个地方:一是丢包率,0% packet loss 说明链路基本通畅,丢包率很高就要怀疑链路质量;二是延迟,局域网一般几毫秒,跨省访问几十毫秒都算正常,突然跳到几百毫秒就值得注意;三是看有没有回复,100% packet loss 说明报文没有回来。需要注意的是,ping 不通不等于服务挂了,很多云服务器为了安全会禁掉 ICMP,ping 不通但网站照常能打开,这种情况很常见。所以 ping 只是第一步,通了说明路没问题,不通也别急着下结论,继续往下查。
二、第二步:curl -v——看 HTTP 走到了哪一步
如果 ping 通了,但网站还是打不开,就用 curl 看 HTTP 层。-v 会把整个过程打印出来,是排查接口问题最顺手的工具。
curl -v https://www.example.com
curl -I https://www.example.com
读 -v 的输出要按阶段看:卡在 Trying 说明 TCP 连不上,可能是端口没开、安全组没放行;卡在 TLS 握手阶段,可能是证书过期或者证书域名对不上;连上之后一直等不到响应,可能是后端服务处理太慢或者挂了。状态码也很有信息量:200 是正常;301、302 是跳转;403 常常是权限或来源限制;502 一般是网关后面没有可用的后端;504 多半是后端超时。curl -I 只拿响应头,适合快速确认服务还在不在。
三、第三步:ss -tlnp——服务到底有没有在监听
如果从外面连不上,回到服务器本机上查一查,服务到底有没有在监听。ss 是现在推荐用的工具,比老的 netstat 更快,-tlnp 四个字母分别表示 TCP、只看监听状态、显示数字端口、显示进程。
ss -tlnp
ss -tlnp | grep 80
重点看三点:第一,有没有你要的端口,如果 80、443 或者应用端口根本不在 LISTEN 列表里,说明服务没起来,或者配置文件里的端口写错了;第二,看监听地址,0.0.0.0:80 表示所有网卡都能访问,127.0.0.1:80 只允许本机访问,从外网当然连不上,这也是新手最容易踩的坑;第三,看最后一列的进程名,确认监听这个端口的确实是你想的那个服务,而不是被别的程序占了。
四、第四步:dig、nslookup——域名解析有没有问题
ping 域名不通、但 ping IP 能通,或者 curl 报错说解析失败,就要查 DNS 了。
dig +short www.example.com
nslookup www.example.com
dig +short 只返回解析结果,一眼就能看出来域名解析到了哪个 IP;dig 的完整输出里还能看到用的是哪个 DNS 服务器、查询花了多久。如果解析出来的 IP 是错的,或者干脆解析失败,先换一个公共 DNS 试试,比如把解析服务器换成 114.114.114.114 再查一次,能解析就是原来的 DNS 有问题。域名刚改了解析记录,全球生效需要时间,本地也可以先用 IP 直连测试,确认服务本身是好的。
五、按顺序走的排查清单
| 顺序 | 查什么 | 命令 | 正常表现 | 异常先看哪里 |
|---|---|---|---|---|
| 1 | 连通性 | ping -c 4 域名 | 0% 丢包、延迟稳定 | 链路、出口网络 |
| 2 | HTTP | curl -v 域名 | 200、响应正常 | 端口、证书、后端 |
| 3 | 监听 | ss -tlnp | 端口在 LISTEN | 服务状态、监听地址 |
| 4 | 解析 | dig +short 域名 | IP 正确 | DNS、解析记录 |
遇到网络问题,先分层、再动手:ping 定连通,curl 定 HTTP,ss 定服务,dig 定解析。按这个顺序走一遍,大多数“网站打不开、接口不通”的问题,都能在不重启的情况下找到原因。
- 点赞
- 收藏
- 关注作者
评论(0)