Linux网卡状态异常_网卡故障排查流程

4次阅读

网卡状态异常排查需逐层验证:先确认物理识别与驱动加载,再检查接口up状态及ip配置,接着验证二层arp连通性、三层路由与物理链路,最后排除防火墙、networkmanager冲突及云平台安全组限制。

Linux网卡状态异常_网卡故障排查流程

网卡状态异常通常表现为无IP、接口DOWN、ping不通网关或丢包严重。排查要从底层驱动到上层配置逐层验证,避免跳步误判。

确认网卡物理与驱动状态

先排除硬件和内核识别问题:

  • 运行 lspci | grep -i ethernetlshw -class network,确认网卡是否被系统识别
  • lsmod | grep $(ethtool -i eth0 | awk ‘/driver/ {print $2}’) 检查对应驱动模块是否已加载(将 eth0 替换为实际接口名)
  • 执行 dmesg | grep -i “eth0|network|firmware”,查找启动时是否有“link down”“no carrier”“failed to load firmware”等报错
  • 若驱动未加载,尝试 modprobe 驱动名;若提示 firmware 缺失,需安装对应固件包(如 linux-firmware)

检查接口启用状态与基础配置

驱动正常后,看接口是否 UP、有无有效 IP:

  • 执行 ip link show eth0(替换为你的接口名),观察状态是否为 UP;若为 DOWN,运行 sudo ip link set eth0 up
  • 运行 ip addr show eth0,确认是否分配了合法 IPv4 地址(非 169.254.x.x 或 0.0.0.0)
  • 若使用 DHCP 但未获取地址,手动触发: sudo dhclient -v eth0;若失败,检查 journalctl -u systemd-networkdcat /var/lib/dhcp/dhclient.leases
  • 若为静态配置,核对 /etc/netplan/*.yamlubuntu)或 /etc/sysconfig/network-scripts/ifcfg-eth0(RHEL)中 address、gateway、DNS 是否语法正确且生效

验证链路层连通性与路由

有IP不等于能通信,需确认二层可达和三层转发:

  • arping -I eth0 -c 3 网关IP 测试同一子网内的 MAC 层响应(比 ping 更底层)
  • 运行 ip route show,确认默认路由指向正确的网关;若缺失,临时添加:sudo ip route add default via 网关IP dev eth0
  • 检查 ethtool eth0 输出:重点关注 Link detected: yesSpeed:Duplex: 是否正常(如显示 Unknown!No,说明物理链路异常)
  • 若网线插在交换机但 link 未检测到,尝试更换网线、端口,或检查交换机对应端口是否 shutdown/错误隔离

排查干扰因素:防火墙、策略与服务

常见“通但不可用”问题多由策略拦截或服务异常引起:

  • 临时关闭防火墙测试:sudo ufw disable(Ubuntu)或 sudo systemctl stop firewalld(RHEL)
  • 检查 NetworkManager 是否接管了接口但配置冲突:systemctl status NetworkManager;必要时停用并改用 systemd-networkd
  • 确认网络服务未被禁用:systemctl is-enabled networkingdebian)或 systemctl is-enabled network(RHEL)
  • 若为云服务器(如阿里云ECS),检查控制台是否开启“安全组”放行对应端口,且实例未处于“网络隔离”模式
text=ZqhQzanResources