一、网络连接故障的常见表现

当你发现Linux服务器突然无法访问外网,或者内网服务之间通信异常时,别急着重启——先冷静观察症状。常见的问题包括:

  1. 完全无法访问外网(比如ping 8.8.8.8失败)
  2. 特定服务不可达(例如Nginx返回502 Bad Gateway
  3. DNS解析失败(能ping通IP但无法解析域名)
  4. 间歇性丢包ping测试时出现超时)

举个实际例子:

# 测试基础网络连通性(技术栈:Linux基础命令)
ping -c 4 8.8.8.8  # 发送4个ICMP包到Google DNS
# 若返回"Network is unreachable",可能是路由或网卡问题

二、基础排查命令工具箱

1. 网卡与IP检查

ip addr show  # 显示所有网卡信息(替代老旧的ifconfig)
# 输出示例:
# 2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
#     link/ether 00:16:3e:ab:cd:ef brd ff:ff:ff:ff:ff:ff
#     inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0

2. 路由表诊断

ip route show  # 查看路由表
# 关键检查点:
# default via 192.168.1.1 dev eth0  # 默认网关是否正确?

3. 防火墙快查

sudo iptables -L -n -v  # 查看iptables规则(CentOS/Ubuntu等)
# 注意INPUT/OUTPUT链中是否有DROP规则

三、深度分析实战

案例1:DNS解析失败

dig +trace example.com  # 跟踪DNS解析全过程
# 若卡在某个环节,可能是本地DNS服务器或上级DNS故障

# 临时修改DNS测试(技术栈:Linux网络配置)
echo "nameserver 114.114.114.114" | sudo tee /etc/resolv.conf

案例2:TCP连接超时

# 使用telnet测试端口(技术栈:基础网络工具)
telnet example.com 80
# 如果卡住,可能是防火墙拦截或服务未监听

# 更专业的tcptraceroute(需安装)
sudo tcptraceroute -n -p 443 example.com

案例3:MTU引发的血案

# 发现大包传输失败时检查MTU(技术栈:网络诊断)
ping -s 1472 -M do 8.8.8.8  # 测试MTU(1472+28字节头=1500)
# 如果返回"Frag needed but DF set",说明路径中存在更小MTU设备

四、高级工具链

1. tcpdump抓包分析

sudo tcpdump -i eth0 -nn 'port 80' -w http.pcap  # 抓取HTTP流量
# 用Wireshark分析保存的pcap文件更直观

2. ss替代netstat

ss -tulnp  # 显示所有监听端口(技术栈:现代Linux工具)
# 输出示例:
# tcp   LISTEN 0  128  0.0.0.0:22  0.0.0.0:*  users:(("sshd",pid=1234,fd=3))

3. 网络质量评估

# 使用mtr综合诊断(技术栈:网络质量工具)
mtr -r -c 10 example.com  # 发送10个包并生成报告
# 输出中的Loss%列显示链路丢包率

五、应用场景与技术选型

典型场景

  • 云服务器失联:优先检查安全组规则和VPC路由
  • 内网服务中断:重点排查ARP表和交换机配置
  • CDN节点异常:结合traceroute和BGP路由分析

工具优缺点

工具 优点 缺点
ping 快速检测基础连通性 无法测试特定TCP服务
tcpdump 提供原始数据包分析 需要专业知识解读
mtr 可视化路由跳点质量 可能被运营商限速

六、避坑指南

  1. 不要盲目重启网络服务:可能丢失临时诊断信息
  2. 慎用iptables -F:生产环境可能因此失去远程连接
  3. 注意命令兼容性:例如CentOS 8已弃用netstat

七、总结

网络排查就像破案,要:

  1. 从现象倒推可能原因(如能ping通IP但无法访问网页→DNS问题)
  2. 按OSI模型分层检查(物理层→网络层→传输层→应用层)
  3. 善用组合命令(比如ss + tcpdump + dig三件套)

记住:90%的"网络故障"最终发现是配置错误或权限问题。保持耐心,逐层剥离,真相总会浮出水面。