系统是Ubuntu 16.10。它已经更新了很多次,所以它可能有一些早期版本的剩余内容(至少可以追溯到 14.04,可能更长)。
问题如下:我的系统中有两个网络接口(在主板上)。其中一个始终命名为 eth0。第二个没有使用。现在我的网络出现了新情况,想要使用第二个接口。
我学到了很多关于接口重命名和新的重命名规则的知识。所以第二个接口选择了名称 enp5s0 或类似的名称,记不清了,因此我需要重命名它。但这就是我的麻烦开始的地方。
/etc/udev/rules.d/70-persistent-net.rules
据我所知,eth0 的处理方式已被弃用。我尝试为“eth1”添加第二条规则(使用其 mac 而不是 eth0),但它不起作用。
因此,在阅读了一些内容后,我删除了旧文件,也许我误解了一些东西,但我认为今天不鼓励使用 eth* 名称,所以我选择将它们称为 lan0 和 lan1 (这描述了它们的用途)。然后我在以下位置添加了新文件/etc/systemd/network
:
10-eth-lan0.link 10-eth-lan1.link
有了这个内容:
[匹配] MAC地址=00:23:54:96:74:07/06 [关联] 名称=lan0/1
对于不同的 MAC 地址和不同的名称。对于 eth0 这似乎有效,对于 eth1 (或任何原因)则不然。我很困惑为什么它不起作用。我仔细检查了mac。
dmesg | grep eth 向我展示了这个:
[6.233684]sky2 0000:08:00.0 eth0:地址00:23:54:96:74:07 [6.233975]sky2 0000:05:00.0 eth1:地址00:23:54:96:74:06 [6.661954]sky2 0000:08:00.0 lan0:从eth0重命名 [8.513836] sky2 0000:05:00.0 rename3:从eth1重命名
我完全不知道为什么它现在选择“rename3”...在我看到 systemd 链接文件不起作用后,我对 ip 链接集名称进行了一些尝试。
最让我困惑的是它适用于 eth0 -> lan0,但不适用于 eth1 -> lan1。我可以调查什么来找出重命名不起作用的原因?谁在这里缓存东西? “ip 链接集名称”确实产生了一些持久影响(例如从 enp5s0 或类似内容更改为“rename3”)。
[编辑] 我现在又认识到一件事:我的环回接口被重命名为 lan1。不知道为什么。但现在每次启动都会发生这种情况。另外,我删除了上面描述的 *.link 文件,重命名仍然发生一样...... ???在 /etc 中,/etc/network/interfaces 中现在只提到了一次 lan0,而没有提到 lan1。有人把这些东西存放在某个地方,但我不知道是谁或在哪里。
答案1
(我知道这是一个 RHEL 文档,但它实际上只是关于udev
)
- /usr/lib/udev/rules.d/60-net.rules 中的规则指示 udev 帮助程序实用程序 /lib/udev/rename_device 查看所有 /etc/sysconfig/network-scripts/ifcfg-suffix 文件。如果它发现 ifcfg 文件中的 HWADDR 条目与接口的 MAC 地址相匹配,则会将该接口重命名为由 DEVICE 指令在 ifcfg 文件中指定的名称。
所以如果你想要最简单的重命名设备的方法,创建一个/etc/sysconfig/network-scripts/ifcfg-${INTERFACE_NAME}
至少包含以下内容的文件:
DEVICE=${INTERFACE_NAME}
HWADDR=${MAC_ADDRESS}
所以如果你的接口有一个 MAC00:11:22:33:44:55
并且你希望它被调用penguin-interface
/etc/sysconfig/network-scripts/ifcfg-penguin-interface
DEVICE=penguin-interface
HWADDR=00:11:22:33:44:55
您也可以使用其中的所有常用设置。
如果您想知道这些名字是如何enp5s0
发生的(e那里n等p奥尔特5 s很多0)https://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c#n20