更改网络接口名称,debian wheezy


14

我正在尝试为接口设置名称“ ethLan”,而不是eth0。这样做还可以确保if的名称在每次重新引导和内核时都保持一致。

我确实在该主题中找到了一些文章,但是它们都已经存在了两年了:
http : //www.debian-administration.org/articles/463
http://www.linuxfromscratch.org/hints/downloads/files/ nameif.txt

他们说的做了,然后将ethLan mac添加到/ etc / mactabs /中。此时,我有两个问题:
1)if [...] && /sbin/nameif我放在/etc/network/if-pre-up.d/中的脚本无法运行。我通过将其添加到/etc/init.d/networking来解决此问题,但是if-pre-up.d为什么不起作用?
2)除非我将ifconfig ethLan手动添加到/ etc / network / interfaces,否则除非我手动将ifconfig ethLan向上,否则不会加载该接口。我究竟做错了什么?

Answers:


17

您找到的文章有些过时了。现在有一种简单的方法,可以通过Udev为网络接口分配名称。

在Debian及其衍生产品(包括Ubuntu)上,查找名为的文件/etc/udev/rules.d/70-persistent-net.rules。该文件是在/lib/udev/rules.d/75-persistent-net-generator.rules脚本的帮助下创建的/lib/udev/write_net_rules。每次udev看到一个新的网络设备时,它都会为其分配一个新编号并将该编号附加到/etc/udev/rules.d/70-persistent-net.rules。这样,接口号在重新启动后将保持不变,并且在恢复后将保持不变/etc

(如果您的发行版未提供这些文件,请在Debian软件包中查找它们。)

如果您想给接口起一个有意义的名称,您所/etc/udev/rules.d/70-persistent-net.rules要做的就是编辑该文件并将其更改"eth0""ethLan"udevadm trigger --sysname eth0编辑文件后,运行以重命名现有设备(我认为这需要关闭界面)。如果没有该文件,则可以编写与自己匹配的单行代码(Debian添加的复杂脚本只能自动执行此操作):

SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="01:23:45:67:89:ab", NAME="ethLan"

1
如果您希望使用方便的udev规则中的属性列表,可以尝试使用udevadm info -a /sys/class/net/eth0。(udevadm(8)详情请参阅)
奥斯汀·亚当斯

1
该问题明确指出是针对Wheezy的,但可能值得注意的是,该答案不再适用于较新的Debian和Ubuntu。从systemd 220-7开始,接口命名需要通过其他方式进行。
桑皮

@sampi我的答案仍然适用于Debian jessie(当前的稳定版本)。它是否会一时失败,还是只是建议使用不推荐使用的方法?您知道哪个版本的Ubuntu是截止日期吗?
吉尔(Gilles)'所以

@Gilles为了了解它实际上是否失败还是仅建议弃用而没有深入研究细节。似乎Ubuntu Wily和更新的系统使用的systemd高于220-7
桑皮

6

对于像我这样通过搜索引擎浏览此帖子的人:

在Debian Stretch和更高版本中,您可以使用systemd .link文件使udev重命名设备。有关联机帮助页,请参见https://manpages.debian.org/stretch/udev/systemd.link.5.en.html

一个例子:

cat /etc/systemd/network/10-uplink0.link 
[Match]
MACAddress=00:0d:b9:49:8a:18

[Link]
Name=uplink0

不要忘记update-initramfs -u稍后运行,以将这些更新的配置文件嵌入到您的initramfs中,并将在其中应用它们。


如果链接文件存在于具有udev.rules.d的系统中,那么哪个优先?
vfclists

1

使用名为的软件包有一种稍微简单的方法ifrename。它有一个单独的(来自udev)配置文件,您可以使用MAC地址来标识接口。

wireless-tools但是它与之冲突。


2
应该注意的是ifrenameudev如果两者都用于给接口赋予持久性名称,则会产生冲突。
Mischa Arefiev 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.