由于业务需要将网卡改成 eth0
下面整理一下centos7如何修改网卡名称。
使用脚本快速干活
__set() {
# 仅限普通网卡配置, VLAN 网卡不可用此脚本
_old_nic_name=$1
_new_nic_name=$2
# 取得网卡 mac
_nic_mac=$(ip a show "$_old_nic_name" | grep 'ether\s[0-9a-z:]{17}' -Eo | awk '{print $NF}')
# 如果网卡mac 为空, 则可能参数错了
if [[ "${_nic_mac}" == "" ]]; then return $?; fi
echo "修改配置"
cat >/usr/lib/udev/rules.d/60-net.rules <<EOF
ACTION==”add”, SUBSYSTEM==”net”, DRIVERS==”?“, ATTR{type}==”1”, PROGRAM=”/lib/udev/rename_device”, RESULT==”?“, NAME=”\$result”
ACTION==”add”, SUBSYSTEM==”net”, DRIVERS==”?*”, ATTR{type}==”1”, ATTR{address}==”$_nic_mac”, NAME=”$_new_nic_name” EOF
# 查看修改结果
# cat /usr/lib/udev/rules.d/60-net.rules
# 修改物理网卡配置文件
# 复制网卡配置文件
cp "/etc/sysconfig/network-scripts/ifcfg-$_old_nic_name" "/etc/sysconfig/network-scripts/ifcfg-$_new_nic_name"
# 修改网卡配置 NAME DEVICE
sed "s/^NAME.*/NAME=$_new_nic_name/g" -i "/etc/sysconfig/network-scripts/ifcfg-$_new_nic_name"
sed "s/^DEVICE.*/DEVICE=$_new_nic_name/g" -i "/etc/sysconfig/network-scripts/ifcfg-$_new_nic_name"
# 旧配置更名,使得不影响配置
mv "/etc/sysconfig/network-scripts/ifcfg-$_old_nic_name" "/etc/sysconfig/network-scripts/ifcfg-$_old_nic_name.bak"
echo "设置完成, 还需要 执行 reboot 重启设备"
}
参数1 物理网卡原名
参数2 新网卡名
__set p4p1 eth0
<a name="Ia2e5"></a>
# 如果是VLAN 网卡
- 已 eth0 为例, 父网卡 p4p1
- 文件内容`/etc/sysconfig/network-scripts/ifcfg-eth0`
- **需要重启设备, 重启网络不管用**
- 不需要 在` /usr/lib/udev/rules.d/60-net.rules` 绑定mac
```bash
VLAN=yes
TYPE=vlan
PHYSDEV=p4p1
VLAN_ID=50
REORDER_HDR=yes
BOOTPROTO=static
IPADDR=192.168.1.11
PREFIX=24
GATEWAY==192.168.1.11
DEFROUTE=yes
DNS1=223.5.5.5
DNS2=119.29.29.29
NAME=eth0
DEVICE=eth0
ONBOOT=yes