You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

更换PCIe卡时如何保留Ubuntu 16.04的/etc/network/interfaces配置?

解决Ubuntu 16.04网卡名称随PCIe设备变更导致启动卡顿的问题

我太懂这个坑了——Ubuntu 16.04默认用的是systemd的「可预测网络接口命名」,听起来挺靠谱,但只要你插拔显卡、HBA这类PCIe设备,系统枚举PCI插槽的顺序就会变,网卡名称跟着改,结果启动时系统找不到配置里的旧接口,硬生生卡在那半天,重启次数越多越闹心。

下面给你几个实用的解决办法,按需选就行:

方法1:换回传统的ethX命名(简单直接)

这是最省心的方式,回到以前熟悉的eth0、eth1命名逻辑:

  1. 编辑grub配置文件:
    sudo nano /etc/default/grub
    
    找到GRUB_CMDLINE_LINUX这一行,改成:
    GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
    
  2. 更新grub使配置生效:
    sudo update-grub
    
  3. 重启系统后,网卡会变回eth0、eth1、eth2这类名称。
  4. 最后修改你的/etc/network/interfaces,把里面的接口名称替换成新的ethX,最好加上MAC地址绑定,防止重启后ethX顺序乱掉:
    auto eth0
    iface eth0 inet static
        address 192.168.1.10
        netmask 255.255.255.0
        gateway 192.168.1.1
        hwaddress ether aa:bb:cc:dd:ee:ff  # 替换成对应网卡的MAC地址
    

方法2:基于MAC地址固定自定义名称(更稳定)

如果不想用ethX,想给网卡起个好记的名字(比如lan0、wan0),可以通过udev规则绑定MAC地址:

  1. 先查所有网卡的MAC地址:
    ip link show
    
    每个网卡的link/ether后面的字符串就是MAC地址,记下来。
  2. 创建udev规则文件:
    sudo nano /etc/udev/rules.d/70-persistent-net.rules
    
    写入以下内容(每个网卡对应一条,替换MAC和自定义名称):
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="aa:bb:cc:dd:ee:ff", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="lan0"
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="ff:ee:dd:cc:bb:aa", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="lan1"
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="cc:dd:ee:ff:aa:bb", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="lan2"
    
  3. 修改/etc/network/interfaces里的接口名称为你自定义的lan0、lan1等,同样可以加上MAC地址绑定。
  4. 重启系统后,网卡名称就会固定下来,不管怎么插拔PCI设备都不会变。

方法3:用systemd link文件固定名称(适合熟悉systemd的用户)

如果你想保留systemd的命名逻辑但固定名称,可以创建自定义的link文件:

  1. 为每个网卡创建一个link文件,比如:
    sudo nano /etc/systemd/network/10-lan0.link
    
    写入内容:
    [Match]
    MACAddress=aa:bb:cc:dd:ee:ff  # 替换成目标网卡的MAC地址
    
    [Link]
    Name=lan0  # 自定义的网卡名称
    
    每个网卡对应一个这样的文件,比如10-lan1.link、10-lan2.link。
  2. 重启系统后,systemd会根据MAC地址匹配并设置固定名称。

注意事项

  • 修改任何配置前,记得备份原文件,比如:
    sudo cp /etc/network/interfaces /etc/network/interfaces.bak
    
  • 重启后先用ip link show确认网卡名称是否正确,再测试网络连接是否正常。
  • 如果你的系统同时用了NetworkManager,可能会和静态配置冲突,建议禁用它:
    sudo systemctl stop NetworkManager && sudo systemctl disable NetworkManager
    

内容的提问来源于stack exchange,提问作者chew socks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:22:24