Rocky9.2 U盘系统插到不同机器网卡名变化导致无法获取DHCP地址问题解决
文章摘要:Rocky9系统采用可预测网络接口命名机制,导致网卡名称随硬件环境变化。为解决这一问题,可通过NetworkManager配置通配DHCP策略(ifname"*"),实现自动连接优先级最高的可用网卡,无需预设网卡名称。该方案支持热插拔自动切换,但需注意当多网卡同时在线时会同时获取IP。若需严格单网卡在线,则需使用dispatcher脚本等进阶方案强制禁用其他接口。
·
一、为什么网卡名会变?(先把底层逻辑说清)
Rocky 9 默认使用 systemd predictable network interface names,规则大概是:
| 名称 | 含义 |
|---|---|
eno1 |
主板板载网卡(onboard) |
enp0s31f6 |
PCI 拓扑路径 |
eth0 |
传统命名(被禁用时才会出现) |
你这个 U 盘系统插到不同机器:
-
主板不同
-
PCI 拓扑不同
-
BIOS/ACPI 描述不同
👉 udev 算出来的名字必然不同
二、如果你想更“无脑”:只要有网卡就 DHCP
一个通配 DHCP + 允许自动切换 + 不绑死接口
nmcli con add type ethernet \
con-name usb-auto-dhcp \
ifname "*" \
connection.autoconnect yes \
connection.autoconnect-priority 100 \
ipv4.method auto \
ipv4.may-fail yes \
ipv6.method ignore
关键参数解释(这几个才是灵魂)
| 参数 | 作用 |
|---|---|
ifname "*" |
匹配所有以太网 |
autoconnect yes |
网线一插就起 |
autoconnect-priority 100 |
抢最高优先级 |
ipv4.may-fail yes |
没插线/没 DHCP 不会卡死 |
效果:
-
哪张网卡 先 link up
-
DHCP 成功 → 这张就活
-
其它没插线的 → DHCP 失败直接放弃
-
后续拔线/插线 → NM 会自动切换
✔ 插哪张都行
✔ 多网卡不需要事先知道名字
✔ 不用脚本、不用 udev hack
三、⚠️ 一个你必须知道的现实限制
如果 两张网卡同时插着有效网线
NetworkManager 一定会都给 IP
这是设计如此,不是你命令写错。
如果你真的要做到:
-
同一时刻
-
系统里 只允许一张以太网有 IP
那就只能上:
-
dispatcher 脚本
-
udev + nmcli down
-
或者 systemd-networkd + RequiredForOnline
👉 如果你真有这个硬需求,我可以直接给你一份 dispatcher 脚本,插线自动踢掉其他网卡。
更多推荐
所有评论(0)