修改網卡名為eth開頭
NetworkName=`ls /etc/sysconfig/network-scripts/ifcfg-* | xargs -n1 | awk -F- '{print $NF}' | head -1`
# 檢查網卡名: 如果不是eth0,修改為eth0
if [ "$NetworkName" = "eth0" ]; then
echo "NetworkName:$NetworkName"
exit 0
else
sed -i 's/\(GRUB_CMDLINE_LINUX=".*\)"/\1 biosdevname=0 net.ifnames=0"/' /etc/default/grub
grub2-mkconfig -o /etc/grub2.cfg
sed -i 's/\(^NAME=\).*/\1eth0/' /etc/sysconfig/network-scripts/ifcfg-$NetworkName
sed -i 's/\(^DEVICE=\).*/\1eth0/' /etc/sysconfig/network-scripts/ifcfg-$NetworkName
mv /etc/sysconfig/network-scripts/ifcfg-$NetworkName /etc/sysconfig/network-scripts/ifcfg-eth0
nmcli c reload
reboot
fi
不行再使用udev修改網卡名為任意名稱
cat<<EOF >> /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:ff:be:c2",NAME="eth0"
EOF && reboot
udev的作用是:
man udev
receives device uevents directly from the kernel whenever a device is added or removed from the system, or it changes its state.
當有設備從系統插入或者拔出,或者改變了狀態的時候,內核會直接收到設備uevents。
udev rules文件存在位置:
system rules directory: /usr/lib/udev/rules.d
volatile runtime directory: /run/udev/rules.d
local administration directory: /etc/udev/rules.d
udev讀取文件規則:
讀取這些目錄下以.rules為后綴的文件。
文件先后順序和其所在目錄無關,和文件的名稱順序有關。
若不同目錄存在相同的文件,則根據目錄名稱來排優先級順序。/etc>/run>/usr
udev進行網卡重命名
優先查詢的是/usr/lib/udev/rules.d/60-net.rules配置文件。如果發現包含 HWADDR 條目的 ifcfg 文件與某個接口的 MAC 地址匹配,它會將該接口重命名為 ifcfg 文件中由 DEVICE 指令給出的名稱。
合理修改centos7網卡名稱流程
- 首先修改當前網卡名稱
/sbin/ip link set eth1 down
/sbin/ip link set eth1 name eth123
/sbin/ip link set eth123 up
- 然后在
/usr/lib/udev/rules.d/60-net.rules
中加入配置策略
ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="00:0c:29:ff:be:c2", NAME="eth123"
-
最后修改
ifcfg-xxx
里面的NAME
和DEVICE
字段值為eth123
。 -
重啟網卡即可。
refer:
https://www.freedesktop.org/software/systemd/man/udev.html#
https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/networking_guide/sec-understanding_the_device_renaming_procedure?tdsourcetag=s_pctim_aiomsg
https://unix.stackexchange.com/questions/205010/centos-7-rename-network-interface-without-rebooting