网络中断后,盲目操作只会浪费时间。你需要遵循从本地到远端、从底层到上层的系统性排查路径,快速定位问题根源。
登录服务器控制台(如iDRAC、iLO)或通过物理显示器,直接在服务器上执行以下命令,确认网卡与IP配置是否正常。
检查网络接口与IP地址:
ip addr show
或使用旧命令
ifconfig -a
你需要看到类似 `eth0` 或 `ens192` 的接口,并且其状态为 `UP`。如果状态为 `DOWN`,问题出在网卡驱动或物理连接。
检查默认网关与路由表:
ip route show
或
route -n
确认存在一条通过你的网关IP(如 `192.168.1.1`)指向 `0.0.0.0/0` 的默认路由。
测试本地回环与网卡硬件:
ping 127.0.0.1
如果失败,说明TCP/IP协议栈有问题,需重启网络服务或系统
ethtool eth0 | grep -E “Link detected|Speed”
查看网卡物理链路状态与速度,确保显示 “Link detected: yes”
如果本地网络配置正常,下一步是测试与最近网络节点的连通性。
向网关发送ARP请求并测试连通:
arping -I eth0 192.168.1.1
如果收到回复,说明二层可达
ping -c 4 192.168.1.1
测试与网关的三层连通性,如果失败,检查网关设备或中间交换机
检查ARP缓存:
arp -an
查看网关的MAC地址是否已正确解析。若无对应条目,可能是ARP欺骗或交换机问题。
这是最常见的人为失误点。你需要同时检查主机防火墙和云平台安全组。
检查主机防火墙(以firewalld为例):
systemctl status firewalld
查看防火墙状态
firewall-cmd --list-all
查看当前生效的所有规则,确认所需端口(如ICMP, SSH的22端口)在允许的zone(如public)中
临时关闭防火墙进行测试(仅用于诊断):
systemctl stop firewalld
再次尝试ping网关或外部地址,如果恢复,则问题在防火墙规则
诊断后务必重新开启:systemctl start firewalld
检查云服务器安全组/网络ACL:
登录云服务商控制台(如AWS EC2安全组、阿里云安全组),确保入方向和出方向规则允许相关流量。例如,出方向需允许所有流量或至少到目标地址的ICMP和业务端口。
如果 `ip addr show` 显示接口为 `DOWN` 或IP地址丢失,按以下步骤恢复。
重启网络服务(CentOS 7/RHEL 7):
systemctl restart network
重启网络服务(Ubuntu 18.04+/Debian):
netplan apply
如果使用netplan,应用配置
手动启用网卡并配置IP(临时):
ip link set eth0 up
ip addr add 192.168.1.100/24 dev eth0
ip route add default via 192.168.1.1 dev eth0
将IP、子网掩码、网关替换为你的实际配置
永久修复网络配置文件(以CentOS为例):
编辑网卡配置文件:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
确保内容完整正确,以下是一个静态IP配置示例:

TYPE=Ethernet
BOOTPROTO=none
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=114.114.114.114
保存后,执行 systemctl restart network 使配置生效。
如果无法访问外网,但能 ping 通同网段其他主机,通常是路由问题。
临时添加默认网关:
ip route add default via 192.168.1.1 dev eth0
检查并永久修复网关配置:
网关配置通常在上述的 `ifcfg-eth0` 文件的 `GATEWAY` 参数中。对于Ubuntu netplan,配置文件通常在 `/etc/netplan/01-netcfg.yaml`,确保 `gateway4:` 字段正确。
处理多网卡路由冲突:
使用 `ip route show` 查看,确保只有一个默认网关。如果有多个,删除错误的那个:
ip route del default via 错误的网关IP
表现为能ping通IP,但无法通过域名访问。
测试DNS解析:
nslookup www.baidu.com
或
dig www.baidu.com
如果超时或失败,检查DNS配置。
临时修改DNS服务器:
echo “nameserver 8.8.8.8” > /etc/resolv.conf
echo “nameserver 114.114.114.114” >> /etc/resolv.conf
永久修改DNS配置:
对于CentOS,在 `ifcfg-eth0` 中配置 `DNS1` 和 `DNS2`。对于Ubuntu,在netplan配置文件中使用 `nameservers:` 字段,然后执行 `netplan apply`。
日志是发现隐蔽问题的关键。
journalctl -xe --no-pager | grep -i network
journalctl -xe --no-pager | grep -i eth0
查看systemd日志中与网络相关的错误
dmesg | grep -i eth
查看内核环缓冲区信息,排查网卡驱动加载异常或硬件错误
当ping不通网关时,抓包可以判断数据包是否发出、是否收到回复。
tcpdump -i eth0 host 192.168.1.1
在另一个终端执行 ping 192.168.1.1
观察tcpdump输出,看是否有ICMP请求(echo request)发出和回复(echo reply)
如果只有请求没有回复,问题在网关或链路;如果请求都未发出,问题在本地防火墙或网卡。
ethtool -i eth0 查看驱动信息,可尝试更新或重新加载驱动:modprobe -r e1000e && modprobe e1000e(驱动名根据实际情况替换)。故障恢复后,应立即建立预防机制。
创建网络健康检查脚本:
将以下脚本保存为 `/usr/local/bin/network_check.sh`,并添加执行权限。
!/bin/bash
LOG=“/var/log/network_check.log”
GATEWAY=“192.168.1.1”
TEST_DNS=“8.8.8.8”
TEST_HOST=“www.baidu.com”
echo “$(date) - 开始网络检查” >> $LOG
检查物理链路
if ! ethtool eth0 | grep -q “Link detected: yes”; then
echo “$(date) - 错误: 网卡eth0物理链路断开!” >> $LOG
exit 1
fi
检查网关连通性
if ! ping -c 2 -W 1 $GATEWAY &> /dev/null; then
echo “$(date) - 警告: 无法ping通网关 $GATEWAY” >> $LOG
fi
检查DNS解析
if ! nslookup $TEST_HOST $TEST_DNS &> /dev/null; then
echo “$(date) - 警告: DNS解析失败” >> $LOG
fi
echo “$(date) - 网络检查完成” >> $LOG
通过crontab设置定时任务,每5分钟执行一次:
crontab -e
添加一行
/5 /usr/local/bin/network_check.sh
关键配置备份:
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /backup/ifcfg-eth0.bak
或备份整个netplan目录
tar -czf /backup/netplan_backup.tar.gz /etc/netplan/
当网络再次出现中断时,按照本文的“问题定位”流程逐步排查,并对照“恢复操作”部分执行相应命令,即可在最短时间内恢复服务。所有操作均基于Linux系统原生命令,无需安装额外工具,确保在任何环境下都能执行。
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图