Linux 服务器网络故障排查命令实战——从 ping 到 tcpdump

服务器连不上、网站打不开、SSH 断连——别慌,按这个流程查。

1. 先看能不能通

ping 114.114.114.114

能通说明网络基本正常。只 ping 域名不通的话,是 DNS 问题。

2. 查 DNS

nslookup blog.7ehl.com
dig blog.7ehl.com

看解析结果对不对。不对就去改 DNS 记录。

3. 查端口通不通

telnet 192.168.1.1 22
nc -zv 192.168.1.1 22

端口不通的原因:服务没启动、防火墙拦了、或者端口不是默认的。

4. 看本机监听端口

ss -tlnp   # TCP 监听端口
ss -ulnp   # UDP 监听端口

查看服务是不是真的在跑、是不是绑对了 IP。

5. 看路由

traceroute 8.8.8.8   # Linux
tracert 8.8.8.8     # Windows

看数据包走到哪一跳断了,可能是某个中间网关的锅。

6. 抓包分析

tcpdump -i eth0 host 192.168.1.1 -nn
tcpdump -i eth0 port 80 -nn

看数据包有没有发出去、有没有回应。

7. 看网卡和连接

ip addr          # IP 配置
ip route         # 路由表
ss -tnp          # 当前所有连接

快速排查流程

1. ping 114.114.114.114     # 通了吗?
2. ping blog.7ehl.com       # 域名能解析吗?
3. telnet target 22         # 端口通吗?
4. ss -tlnp                 # 服务在监听吗?
5. iptables -L -n           # 防火墙拦了吗?

几个经典场景

场景一:能 ping 通 IP 但打不开网页
→ 检查服务是否启动、防火墙是否放行 80/443 端口

场景二:ping 域名不通但 ping IP 能通
→ DNS 问题,检查 /etc/resolv.conf

场景三:外网不通但内网能通
→ 检查默认网关和路由表,ip route | grep default

场景四:突然断连
→ 先连带外管理口(IPMI/iDRAC),看系统日志 dmesg | tail

记住这个排查顺序:IP → DNS → 端口 → 防火墙 → 抓包。每一步都先确认上一步没问题再往下查。