CentOS 6 使用 udev 管理裝置命名,預設依據 MAC 位址產生持久化規則 /etc/udev/rules.d/70-persistent-net.rules。修改網卡名稱需同步更新 udev 規則、網卡配置檔、GRUB 參數,避免重開機後名稱漂移。

# cat /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:78:e8:2e", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:04:19:6c", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
NAME 欄位為期望名稱(如 eth0、eth1),確保 MAC 對應正確。# udevadm test /sys/class/net/eth0
觀察 NAME 輸出是否符合預期。
# start_udev
# 或 reboot
setup → Network configuration → Device configuration → Add → 選 Ethernet → 填入 eth1、IP、Netmask。/etc/sysconfig/network-scripts/ifcfg-eth1 未生成,檢查 /etc/sysconfig/networking/devices/ 並複製:
# cp /etc/sysconfig/networking/devices/* /etc/sysconfig/network-scripts/
# system-config-network-tui
service network restart。# vi /boot/grub/grub.conf
kernel /vmlinuz-... ro root=... rhgb quiet biosdevname=0
# rm -f /etc/udev/rules.d/70-persistent-net.rules
# cd /etc/sysconfig/network-scripts/
# mv ifcfg-em1 ifcfg-eth0
# perl -pi -e 's/em1/eth0/g' ifcfg-eth0
reboot。# ip link show
# cat /etc/udev/rules.d/70-persistent-net.rules
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
NAME、DEVICE、HWADDR 三者一致。/etc/hosts、防火牆規則、監控代理配置中的介面名稱。/etc/NetworkManager/system-connections/ 下連線檔案。start_udev 或重啟,單純 service network restart 不會重新套用命名規則。ATTR{address}。NAME_POLICY(kernel database onboard slot path),命名邏輯不同,參考 man systemd.link。三種方法覆蓋從底層規則到高層工具,依習慣與環境選擇,核心原則:MAC 綁定名稱、配置檔同步、驗證生效。