由于业务需要将网卡改成 eth0
下面整理一下centos7如何修改网卡名称。

使用脚本快速干活

  • 请君直接读代码吧
  • shell 函数 传入物理网卡原名和新网卡名 ```bash

    !/usr/bin/env bash

__set() {

  1. # 仅限普通网卡配置, VLAN 网卡不可用此脚本
  2. _old_nic_name=$1
  3. _new_nic_name=$2
  4. # 取得网卡 mac
  5. _nic_mac=$(ip a show "$_old_nic_name" | grep 'ether\s[0-9a-z:]{17}' -Eo | awk '{print $NF}')
  6. # 如果网卡mac 为空, 则可能参数错了
  7. if [[ "${_nic_mac}" == "" ]]; then return $?; fi
  8. echo "修改配置"
  9. 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

  1. # 查看修改结果
  2. # cat /usr/lib/udev/rules.d/60-net.rules
  3. # 修改物理网卡配置文件
  4. # 复制网卡配置文件
  5. cp "/etc/sysconfig/network-scripts/ifcfg-$_old_nic_name" "/etc/sysconfig/network-scripts/ifcfg-$_new_nic_name"
  6. # 修改网卡配置 NAME DEVICE
  7. sed "s/^NAME.*/NAME=$_new_nic_name/g" -i "/etc/sysconfig/network-scripts/ifcfg-$_new_nic_name"
  8. sed "s/^DEVICE.*/DEVICE=$_new_nic_name/g" -i "/etc/sysconfig/network-scripts/ifcfg-$_new_nic_name"
  9. # 旧配置更名,使得不影响配置
  10. mv "/etc/sysconfig/network-scripts/ifcfg-$_old_nic_name" "/etc/sysconfig/network-scripts/ifcfg-$_old_nic_name.bak"
  11. echo "设置完成, 还需要 执行 reboot 重启设备"

}

参数1 物理网卡原名

参数2 新网卡名

__set p4p1 eth0

  1. <a name="Ia2e5"></a>
  2. # 如果是VLAN 网卡
  3. - 已 eth0 为例, 父网卡 p4p1
  4. - 文件内容`/etc/sysconfig/network-scripts/ifcfg-eth0`
  5. - **需要重启设备, 重启网络不管用**
  6. - 不需要 在` /usr/lib/udev/rules.d/60-net.rules` 绑定mac
  7. ```bash
  8. VLAN=yes
  9. TYPE=vlan
  10. PHYSDEV=p4p1
  11. VLAN_ID=50
  12. REORDER_HDR=yes
  13. BOOTPROTO=static
  14. IPADDR=192.168.1.11
  15. PREFIX=24
  16. GATEWAY==192.168.1.11
  17. DEFROUTE=yes
  18. DNS1=223.5.5.5
  19. DNS2=119.29.29.29
  20. NAME=eth0
  21. DEVICE=eth0
  22. ONBOOT=yes

推荐阅读

Centos7修改网卡名称 - 张艳华 - 博客园
centos7中的网卡名称相关知识 - 张艳华 - 博客园