Linux7系统如何修改网卡名称?具体操作步骤是什么?

在Linux 7系统中,默认采用Predictable Network Names(可预测网络名)机制,网卡名称通常以ens、eno、enp等前缀开头(如ens33、eno1),这种命名方式虽然能根据硬件信息(如主板插槽、网卡插槽)稳定识别网卡,但部分用户或旧版脚本习惯使用传统的eth0、eth1等名称,本文将详细介绍Linux 7系统中修改网卡名的两种方法:临时修改(重启后失效)和永久修改(重启后生效),重点说明永久修改的详细步骤及注意事项。

linux7 如何改网卡名

查看当前网卡信息

在修改网卡名前,需先确认当前网卡的名称、MAC地址及运行状态,使用ip a命令(或ifconfig,若已安装)查看:

ip a

输出示例中,重点关注类似以下内容:

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic ens33
       valid_lft 86400sec preferred_lft 86400sec
    inet6 fe80::20c:29ff:fexx:xxxx/64 scope link
       valid_lft forever preferred_lft forever

记录下网卡名(如ens33)和MAC地址(00:0c:29:xx:xx:xx),后续修改需依赖这些信息。

临时修改网卡名(仅测试用)

临时修改通过ip命令实现,重启系统后网卡名会恢复原状,适用于临时测试场景:

# 将ens33临时修改为eth0
sudo ip link set dev ens33 name eth0
# 启动网卡(若原状态为UP)
sudo ip link set dev eth0 up

验证:执行ip a | grep eth0,若显示网卡信息则临时修改成功,但此方法不推荐生产环境使用,因重启后会失效。

永久修改网卡名(推荐方法)

永久修改需修改网络配置文件和udev规则,确保重启后网卡名固定,以下分为传统ifcfg文件方法和NetworkManager方法(Linux 7默认可能使用NetworkManager,两种方法可根据实际环境选择)。

(一)基于ifcfg文件的永久修改

  1. 备份原有配置文件
    防止修改出错导致网络不可用,先备份原网卡配置文件(位于/etc/sysconfig/network-scripts/目录下):

    sudo cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak
  2. 修改网卡配置文件
    编辑原网卡配置文件(如ifcfg-ens33),使用vimnano工具:

    sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33

    需修改的核心参数如下:

    • NAME:网卡的显示名称,修改为目标名称(如eth0);
    • DEVICE:网卡设备名,需与NAME保持一致(如eth0);
    • 其他参数(如BOOTPROTOONBOOTIPADDR等)无需修改,保持原样。

    修改前后对比如下表
    | 参数 | 修改前 | 修改后 | 说明 |
    |————–|————–|————–|————————–|
    | NAME | ens33 | eth0 | 网卡显示名称 |
    | DEVICE | ens33 | eth0 | 网卡设备名 |
    | BOOTPROTO | dhcp | dhcp | IP获取方式(示例为DHCP) |
    | ONBOOT | yes | yes | 是否开机启动 |
    | IPADDR | 168.1.100 | 168.1.100 | 静态IP(若有) |

    linux7 如何改网卡名

    保存文件后退出(vim中按wq)。

  3. 创建udev规则绑定MAC地址与网卡名
    Linux 7通过udev规则根据MAC地址固定网卡名,避免硬件变动导致名称变化,创建规则文件:

    sudo vim /etc/udev/rules.d/70-persistent-net.rules

    添加以下内容(ATTR{address}替换为实际MAC地址,NAME替换为目标网卡名):

    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:xx:xx:xx", NAME="eth0"

    说明:该规则表示当MAC地址为00:0c:29:xx:xx:xx的网卡被添加时,将其命名为eth0

  4. 重启网络服务或系统
    执行以下命令使配置生效(推荐重启系统,确保udev规则正确加载):

    # 重启网络服务(部分场景可能需要)
    sudo systemctl restart network
    # 或重启系统(推荐)
    sudo reboot
  5. 验证修改结果
    重启后执行ip a,查看网卡名是否已修改为eth0,且IP地址等信息正常显示:

    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:0c:29:xx:xx:xx brd ff:ff:ff:ff:ff:ff
        inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic eth0
           valid_lft 86400sec preferred_lft 86400sec
        inet6 fe80::20c:29ff:fexx:xxxx/64 scope link
           valid_lft forever preferred_lft forever

(二)基于NetworkManager的永久修改(适用于nmcli管理)

若系统使用NetworkManager(默认),可通过nmcli命令修改,无需手动编辑ifcfg文件:

  1. 查看当前网络连接名

    nmcli con show

    输出示例:

    ens33  802-3-ethernet  ethernet  --

    记录连接名(如ens33)。

    linux7 如何改网卡名

  2. 修改连接ID为目标网卡名

    sudo nmcli con mod "ens33" connection.id "eth0"

    说明:"ens33"为原连接名,"eth0"为目标网卡名。

  3. 重启连接使配置生效

    sudo nmcli con down "eth0" && sudo nmcli con up "eth0"
  4. 验证修改

    ip a | grep eth0

    若显示网卡信息则修改成功。

注意事项

  1. 备份配置文件:修改前务必备份原配置,避免误操作导致网络中断。
  2. MAC地址一致性:udev规则中的ATTR{address}必须与实际网卡MAC地址一致,可通过ip a确认。
  3. SELinux影响:若系统启用SELinux,修改配置文件后需执行restorecon恢复上下文:
    sudo restorecon /etc/sysconfig/network-scripts/ifcfg-eth0
    sudo restorecon /etc/udev/rules.d/70-persistent-net.rules
  4. 虚拟机环境:VMware、VirtualBox等虚拟机的网卡名可能与物理机不同,需以ip a实际输出为准。
  5. 多网卡场景:若有多块网卡,需逐块修改配置文件和udev规则,避免名称冲突。

FAQs

Q1:修改网卡名后无法上网,如何排查?
A:首先检查配置文件是否正确:确认/etc/sysconfig/network-scripts/ifcfg-eth0中的DEVICENAME是否与目标网卡名一致,ONBOOT是否为yes,其次检查udev规则中的MAC地址是否正确(可通过ip a查看当前网卡的MAC地址并与规则文件中的对比),最后测试网络连通性(如ping 8.168.1.1),若不通可重启网络服务(systemctl restart network)或检查防火墙状态(firewall-cmd --state)。

Q2:为什么按照步骤修改后重启,网卡名还是显示为ens33?
A:可能原因有两个:一是udev规则未生效,需检查/etc/udev/rules.d/70-persistent-net.rules文件是否存在且内容正确(MAC地址和网卡名无误),可尝试重启udev服务(systemctl restart systemd-udev-load-modules.service)后再重启系统;二是NetworkManager未正确应用配置,若使用nmcli修改,需确认连接名是否正确(nmcli con show查看),并尝试删除原连接后重新创建(nmcli con delete "ens33",再重新配置网络)。

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

(0)
酷番叔酷番叔
上一篇 2025年10月8日 01:54
下一篇 2025年10月8日 02:12

相关推荐

  • Linux测网速慢如何检测?排查方法有哪些?

    在Linux系统中排查网速慢问题时,需结合网络连通性测试、带宽性能分析及系统资源检查等多维度方法定位原因,以下从基础排查到专业工具使用,详细说明具体操作步骤和工具选择,基础网络连通性排查首先需确认是否为真实网速问题,而非网络中断或配置错误,基础命令可快速判断网络状态:ping测试:检测目标服务器延迟和丢包率,例……

    2025年10月9日
    3500
  • Linux如何切换桌面环境?

    Linux系统以其高度的可定制性和开源特性,吸引了大量用户,而桌面环境作为用户与系统交互的核心界面,其选择直接影响使用体验,用户可能因性能需求、功能偏好或操作习惯的改变,需要转换桌面系统,这种转换既包括在同一Linux发行版内更换桌面环境,也涉及从其他操作系统(如Windows)迁移到Linux桌面,本文将详细……

    2025年9月17日
    4400
  • Linux磁盘I/O监控怎么做?

    核心命令行工具iostat(实时磁盘统计)功能:报告CPU和磁盘I/O的详细统计信息,安装:sudo apt-get install sysstat # Debian/Ubuntusudo yum install sysstat # CentOS/RHEL基础用法:iostat -dx 2 5 # 每2秒刷新1……

    2025年7月7日
    8500
  • 如何进攻linux

    nux系统安全性较高,不建议用于非法攻击。

    2025年8月14日
    5000
  • Linux如何定义环境变量?方法步骤与命令详解

    在Linux系统中,环境变量是操作系统和运行程序用于存储配置信息、路径、参数等关键数据的机制,它们以“键=值”的形式存在,作用于当前进程及其子进程,影响程序的行为、系统的运行方式以及用户的操作体验,理解如何定义和管理环境变量,是高效使用Linux系统的基础,环境变量的基本概念与作用环境变量分为“自定义环境变量……

    2025年10月4日
    2900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信