Ubuntu 22.04 网卡名称固定操作手册
适用场景: 重启后 ethX 网卡名变化,netplan 配置对不上、IP 丢失。
方案: 启用可预测命名(按插槽命名,如 eno1、enp94s0f0),名称不再随启动顺序变化。
1. 检查当前 GRUB 参数
grep GRUB_CMDLINE_LINUX /etc/default/grub
观察输出中是否含有 net.ifnames=0 或 biosdevname=0:
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0 i915.force_probe=* pci=realloc=off i915.enable_guc=2"
- 值为
0(或缺省,使用ethX命名)→ 继续下一步 - 已经是
1且网卡名形如enoX/enpXsYfZ→ 无需操作
2. 修改 GRUB 参数
sudo vim /etc/default/grub
在 GRUB_CMDLINE_LINUX 行中,把 net.ifnames=0 改为 net.ifnames=1,biosdevname=0 改为 biosdevname=1,其余参数保持不动:
GRUB_CMDLINE_LINUX="net.ifnames=1 biosdevname=1 i915.force_probe=* pci=realloc=off i915.enable_guc=2"
3. 更新 GRUB 并重启
sudo update-grub
sudo reboot
4. 重启后确认新网卡名
ip addr | grep qlen
观察:网卡名应变为 eno1、enp175s0f0 这类插槽命名,不再是 ethX:
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ... state UP ...
3: enp175s0f0: <NO-CARRIER,...> ... state DOWN ...
6: enp94s0f0: <NO-CARRIER,...> ... state DOWN ...
记录每个新名称对应的 MAC 地址(供改 netplan 时核对):
ip -br link
5. 更新 netplan 配置
sudo vim /etc/netplan/*.yaml
把配置中的旧网卡名(eth0、eth1...)替换为第 4 步看到的新名称(按 MAC 对应),然后应用:
sudo netplan apply
观察:ip addr 中对应网卡应拿到配置的 IP;ip route 中默认路由正常。
6. 验证固定效果
多次 sudo reboot,每次开机后执行:
ip -br link
ip -br addr
观察:网卡名与 MAC 的对应关系、IP 配置均不再变化,即为完成。
附:新式命名前缀速查
| 前缀 | 含义 |
|---|---|
eno |
板载网卡,由 BIOS/Firmware 提供索引 |
ens |
板载网卡,由 PCI 热插拔槽位索引 |
enp |
PCI 网卡,由 bus/slot/function 编号命名 |
enx |
由 MAC 地址命名的网卡 |
例:enp94s0f0 → PCI 网卡,bus 94, slot 0, function 0。
关联概念: [[Linux网络配置]] [[netplan]] [[systemd-networkd]]
浙公网安备 33010602011771号