Linux如何修改网卡设备名称?

在Linux系统中,网卡的默认命名方式可能因发行版、内核版本或硬件信息而不同,例如传统的eth0、基于硬件信息的ens33、eno1等,统一的网卡命名规范有助于简化网络管理,尤其是在服务器集群或自动化运维场景中,本文将详细介绍Linux系统中修改网卡名的具体方法,涵盖临时修改、永久修改以及不同发行版的配置差异,并针对常见问题提供解决方案。

linux 如何修改网卡名

查看当前网卡信息

在修改网卡名前,需先确认当前网卡的名称及对应的网络配置,使用以下命令可列出系统中所有网卡及其详细信息:

  • ip a:显示网卡的IP地址、MAC地址等状态信息,输出结果中“inet”对应IPv4地址,“link/ether”对应MAC地址。
  • ls /sys/class/net/:列出系统中的所有网卡名称,结果即为当前网卡名(如ens33、ens37等)。
  • nmcli device status(NetworkManager工具):若系统使用NetworkManager管理网络,该命令可显示网卡名称、连接状态及类型。

临时修改网卡名

临时修改网卡名仅对当前会话有效,重启系统后恢复,适用于快速测试或临时场景,操作步骤如下:

  1. 使用ip link命令修改
    以将网卡ens33修改为eth0为例,执行:

    sudo ip link set ens33 down  # 关闭网卡
    sudo ip link set ens33 name eth0  # 修改网卡名
    sudo ip link set eth0 up    # 启动网卡

    执行后可通过ip a确认网卡名已变更为eth0,但重启系统后会恢复为原名称。

永久修改网卡名

永久修改需修改网络配置文件,并根据发行版调整对应规则,确保重启后网卡名保持不变,以下以CentOS/RHEL和Ubuntu为例分别说明:

(一)CentOS/RHEL系统(使用NetworkManager或ifcfg配置)

CentOS 7及以上版本默认使用NetworkManager,同时支持传统的ifcfg配置文件方式。

方法1:修改ifcfg配置文件(适用于NetworkManager禁用或传统网络服务)

  1. 定位原网卡配置文件
    网卡配置文件位于/etc/sysconfig/network-scripts/目录下,文件名格式为ifcfg-原网卡名,例如ifcfg-ens33

  2. 修改配置文件内容
    编辑ifcfg-ens33,将NAMEDEVICE参数修改为目标网卡名(如eth0),其他参数(如BOOTPROTOONBOOT)保持不变:

    NAME=eth0          # 修改为目标网卡名
    DEVICE=eth0        # 修改为目标网卡名
    BOOTPROTO=dhcp     # IP获取方式(dhcp/static)
    ONBOOT=yes         # 开机自启
    TYPE=Ethernet
  3. 创建新网卡配置文件(可选)
    为保持配置文件名与网卡名一致,可复制原配置文件并重命名为ifcfg-eth0

    sudo cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-eth0
  4. 更新UDEV规则(关键步骤)
    为确保重启后网卡名不恢复,需创建UDEV规则,绑定MAC地址与目标网卡名,执行以下命令:

    linux 如何修改网卡名

    sudo nmcli con show | grep ens33  # 获取原网卡连接名称(可能与网卡名一致)
    sudo nmcli con modify "ens33" connection.id eth0  # 修改NetworkManager中的连接名

    或通过udevadm生成规则:

    sudo udevadm info -a -p $(udevadm info -q path -n /sys/class/net/ens33) | grep -P 'ATTR{address}==' | awk '{print "SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="" $2 "", NAME="" "eth0" """}' | sudo tee /etc/udev/rules.d/10-network.rules
  5. 重启网络服务

    sudo systemctl restart network

方法2:通过NetworkManager修改(推荐)

  1. 修改连接名称
    使用nmcli命令将原连接名(如ens33)修改为目标名称(eth0):

    sudo nmcli con mod "ens33" connection.id eth0
  2. 更新设备名称
    将设备名与连接名绑定:

    sudo nmcli con mod eth0 connection.interface-name eth0
  3. 重启连接

    sudo nmcli con down eth0 && sudo nmcli con up eth0

(二)Ubuntu系统(使用Netplan或NetworkManager)

Ubuntu 18.04及以上版本默认使用Netplan管理网络,部分版本仍支持/etc/network/interfaces配置。

方法1:修改Netplan配置文件(Ubuntu 18.04+)

  1. 定位Netplan配置文件
    配置文件通常位于/etc/netplan/目录下,例如01-network-manager-all.yaml50-cloud-init.yaml

  2. 修改配置文件
    编辑YAML格式的配置文件,将ethernets下的原网卡名(如ens33)修改为目标名称(eth0),并更新dhcp4addresses等配置:

    network:
      version: 2
      ethernets:
        eth0:  # 修改为目标网卡名
          dhcp4: true  # DHCP获取IP
          # 或静态IP配置:
          # addresses: [192.168.1.100/24]
          # gateway4: 192.168.1.1
          # nameservers:
          #   addresses: [8.8.8.8]
  3. 应用配置

    linux 如何修改网卡名

    sudo netplan apply

方法2:修改/etc/network/interfaces(Ubuntu 16.04及以下)

  1. 编辑配置文件
    修改/etc/network/interfaces,将原网卡名(如ens33)替换为目标名称(eth0):

    auto eth0
    iface eth0 inet dhcp
  2. 重启网络服务

    sudo systemctl restart networking

不同发行版网卡名修改对比

为方便操作,以下表格总结主要发行版的修改要点:

发行版 配置文件位置 关键修改步骤 重启命令
CentOS 7+ /etc/sysconfig/network-scripts/ifcfg-* 修改NAMEDEVICE参数;创建UDEV规则绑定MAC与网卡名 systemctl restart network
CentOS 8+ NetworkManager连接配置 使用nmcli修改连接名和设备名 nmcli con reload && nmcli up eth0
Ubuntu 18.04+ /etc/netplan/*.yaml 修改ethernets下的网卡名,更新IP配置 netplan apply
Ubuntu 16.04 /etc/network/interfaces 替换网卡名,修改接口配置 systemctl restart networking

常见问题处理

修改网卡名后无法启动网络?

原因:配置文件语法错误、UDEV规则冲突或SELinux(CentOS)阻止。
解决

  • 检查配置文件语法(如YAML格式缩进、ifcfg文件参数拼写)。
  • 临时关闭SELinux测试:sudo setenforce 0,若正常则调整SELinux策略。
  • 删除冲突的UDEV规则:sudo rm /etc/udev/rules.d/10-network.rules,重新生成规则。

重启后网卡名恢复为原名称?

原因:未创建永久UDEV规则或Netplan/NetworkManager配置未生效。
解决

  • CentOS系统:确保UDEV规则中MAC地址与网卡绑定正确,执行sudo udevadm control --reload-rules && sudo udevadm trigger重新加载规则。
  • Ubuntu系统:检查Netplan配置文件是否保存,执行sudo netplan --debug apply查看错误日志。

通过以上步骤,可完成Linux系统中网卡名的永久修改,操作时需注意备份原配置文件,避免误操作导致网络中断,不同发行版的具体配置细节可能略有差异,建议根据官方文档调整参数。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/16882.html

(0)
酷番叔酷番叔
上一篇 2025年8月25日 17:12
下一篇 2025年8月25日 17:32

相关推荐

  • linux下如何查询两个条件

    Linux 下,可使用 find 命令结合 -and 或 -a 来查询同时

    2025年8月17日
    5500
  • Linux系统如何激活网卡?常用命令行操作与详细配置步骤有哪些?

    Linux系统中,网卡是设备联网的核心组件,激活网卡是确保网络通信的前提,无论是新安装系统、硬件更换,还是因配置调整导致网卡被禁用,掌握正确的激活方法都至关重要,本文将详细介绍Linux系统中激活网卡的多种方式,涵盖命令行工具和图形界面操作,帮助用户快速解决网络连接问题,在激活网卡前,首先需要确认网卡名称及其当……

    2025年9月20日
    4400
  • 如何在Linux中更改目录的所有者?

    核心命令:chownchown(Change Owner)是Linux中修改文件/目录属主的专用命令,需结合sudo使用(因涉及系统权限),基础语法sudo chown [新属主] [目录路径]新属主:目标用户名(如 ubuntu)或用户ID(如 1000),目录路径:需修改的目录路径(如 /var/www/h……

    2025年7月28日
    6100
  • Linux如何将多个运算结果合并输出到同一文件?

    在Linux系统中,将多个运算结果合并写入同一文件是日常运维和脚本开发中的常见需求,无论是系统日志记录、数据分析结果汇总还是批量计算任务输出,都需要高效处理多源数据的整合,本文将详细介绍多种实现方法,涵盖基础命令操作、高级管道技巧及脚本自动化处理,帮助用户根据实际场景选择最优方案,基础重定向方法:分步写入与追加……

    2025年8月26日
    4900
  • Linux中如何将文件复制到U盘?详细操作步骤有哪些?

    在Linux系统中将文件复制到U盘是一个常见操作,但需要经过设备识别、挂载、数据传输和卸载等步骤,由于Linux的文件系统结构与Windows不同,操作时需注意文件系统兼容性和权限问题,以下将详细介绍操作流程,涵盖命令行和图形界面两种方式,并解答常见问题,操作前提:识别U盘与文件系统准备识别U盘设备插入U盘后……

    2025年8月22日
    6500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信