CentOS 6系统出现双em1网卡会导致网络配置冲突,影响正常通信,排查时,可通过lspci、ifconfig确认网卡识别状态,重点检查/etc/udev/rules.d/70-persistent-net.rules文件是否存在重复网卡条目,并查看/etc/sysconfig/network-scripts/下ifcfg-em1配置文件是否冲突,解决方法为修改udev规则,删除重复条目,确保每个网卡有唯一标识,调整网卡顺序后重启网络服务或系统,即可消除双网卡问题,恢复网络正常。
在CentOS 6系统中,网络接口的命名通常基于硬件信息(如MAC地址、主板插槽等),但有时会出现同一个网卡被识别为多个相同名称(如双em1)的异常情况,这不仅会导致网络配置混乱,还可能引发IP冲突或无法联网的问题,本文将结合实际场景,分析双em1网卡的可能原因,并提供详细的排查与解决步骤。
双em1网卡的常见原因
双em1网卡的出现,本质上是系统对同一物理网卡的重复识别或错误命名,常见原因包括:
- udev规则配置错误:udev是Linux系统中的设备管理器,负责根据硬件信息动态生成设备名称,若
/etc/udev/rules.d/下的网卡命名规则(如70-persistent-net.rules)存在重复或冲突条目,可能导致同一网卡被分配多个em1名称。 - 网卡配置文件残留:手动修改网卡配置后,若未清理旧配置文件,可能导致系统加载重复的网卡定义文件(如
ifcfg-em1)。 - 驱动或硬件问题:网卡驱动加载异常(如驱动版本不兼容、驱动重复加载)或硬件故障(如网卡芯片松动、多端口网卡误识别),可能触发系统重复识别。
- 虚拟化环境干扰:在虚拟机(如KVM、VMware)中,若虚拟网卡配置与物理网卡冲突,或虚拟化平台错误映射网卡接口,也可能导致双em1问题。
双em1网卡的排查步骤
确认网卡实际状态
首先通过命令查看当前系统识别到的网卡信息,确认是否真的存在两个em1,或仅为命名重复:

# 查看所有网络接口 ip addr show # 或使用ifconfig(CentOS 6默认安装) ifconfig -a
若输出中存在两个em1接口(如em1:0、em1:1或两个独立的em1),且MAC地址相同或相近(如仅末尾差异),则可判定为重复识别。
检查系统日志,定位识别过程
通过内核日志查看网卡启动时的识别信息,确认重复识别的触发点:
dmesg | grep -i "em1" # 或查看网卡相关日志 tail -f /var/log/messages | grep -i "eth\|em"
重点关注日志中是否有“duplicate MAC address”“device already exists”等错误提示,或网卡被多次加载的记录。
检查udev命名规则
udev规则是CentOS 6网卡命名的核心配置文件,路径通常为/etc/udev/rules.d/70-persistent-net.rules,检查该文件是否存在重复的em1条目:
cat /etc/udev/rules.d/70-persistent-net.rules
若文件中存在多个NAME="em1"的规则(如下方示例),且对应的MAC地址相同或指向同一物理网卡,则说明udev规则冲突是主要原因:
# 错误示例:重复的em1命名
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:1a:2b:3c", ATTR{type}=="1", KERNEL=="eth*", NAME="em1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:1a:2b:3c", ATTR{type}=="1", KERNEL=="eth*", NAME="em1"
检查网卡配置文件
CentOS 6的网卡配置文件位于/etc/sysconfig/network-scripts/,命名格式为ifcfg-<接口名>,若存在多个ifcfg-em1文件或残留的旧配置文件,可能导致系统加载重复定义:
ls /etc/sysconfig/network-scripts/ | grep em1
若输出中存在ifcfg-em1、ifcfg-em1.bak或ifcfg-em1:0等多个文件,需进一步检查文件内容是否重复。
排查驱动与硬件问题
若以上步骤未发现问题,需考虑驱动或硬件层面的问题:
- 检查驱动状态:查看网卡驱动是否正常加载,是否存在重复模块:
lsmod | grep -i "e1000\|igb" # 根据网卡类型替换驱动名(如Intel网卡常用e1000/igb)
若驱动模块被多次加载(如出现两个
e1000),需尝试卸载重装驱动。 - 硬件检测:对于物理服务器,可关机后检查网卡是否松动;对于虚拟机,检查虚拟网卡配置(如VMware的“虚拟网络编辑器”或KVM的
virsh edit)是否存在映射冲突。
双em1网卡的解决方法
修复udev规则(最常见方案)
若udev规则存在重复条目,需清理冲突规则并重新生成:
- 备份原规则文件:
cp /etc/udev/rules.d/70-persistent-net.rules /etc/udev/rules.d/70-persistent-net.rules.bak
- 编辑规则文件:删除所有重复的
NAME="em1"条目,仅保留一个正确的条目(确保MAC地址与实际网卡一致):vim /etc/sysconfig/network-scripts/70-persistent-net.rules
修改后文件应类似:
# 仅保留一个em1条目 SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:1a:2b:3c", ATTR{type}=="1", KERNEL=="eth*", NAME="em1" - 重启udev服务并触发网卡重新识别:
/etc/init.d/udev restart rm /etc/udev/rules.d/70-persistent-net.rules # 删除规则,让系统重新生成 echo "em1" > /sys/class/net/eth1/name # 若原接口名为eth1,手动重命名为em1(可选)
- 重启系统:
reboot

