如何在15.10中重命名网络接口?


35

我决定进行15.10的全新安装,因此,需要重新安装MATLAB。MATLAB许可证与eth0硬件地址相关。

我的以太网卡列为enp1s0,我需要将其重命名为eth0。只有lo列在中/etc/network/interfaces,并且/etc/udev/rules.d/70-persistent-net.rules不存在,所以我不确定从哪里开始。


1
您可以定义一个udev规则来将接口重命名为eth0..let,假设接口的MAC地址是,xx:XX:xx:YY:yy:ZZ然后您可以在/etc/udev/rules.d/eg中创建一个文件99-rename-net.rules并将其放入文件中SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:XX:xx:YY:yy:ZZ", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"..如果您不知道MAC地址,则可以获取它来自/sys/class/net/enp1so/address文件..
heemayl

@heemayl,如果您添加该评论作为答案,那么人们可以更轻松地评论它,并讨论为什么它似乎对某些人有用,而对其他人无效。拥抱!
乔纳森·哈特利

在新的Ubuntu 15.10安装上,以上评论中的@heemayl答案对我不起作用。
乔纳森·哈特利

在上面,@ jdnz建议使用systemd的.link文件,但其他一些建议则不适用于他们。它很可能无法正常工作,因为在编辑链接文件之后,必须更新initramfs。因此,首先遵循@jndz的答案,然后遵循我上面链接的答案。
Pinja-Liina Jalkanen

Answers:


29

我对此的解决方案是创建一个/etc/udev/rules.d/10-rename-network.rules包含以下内容的文件:

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="ff:ff:ff:ff:ff:ff", NAME="eth0"

1
此DID在Ubuntu 15.10上对我有效(不同于对此问题进行投票的答案和评论)
Jonathan Hartley

1
@ steve-mohan这是正确的答案,应标记为正确。
哈博

5
确实从16.04开始有效。
EnzoR

既然这是最好的答案-只想注意对我真正有用的
qodeninja

1
在16.04为我工作。ff:ff:ff:ff:ff:ff:ff需要用MAC地址替换。
Ken Shirriff

7

我有同样的问题,添加文件/etc/udev/rules.d/并没有帮助。问题似乎在于此处所述的可预测网络接口名称的使用。要创建自己的手动命名方案,即为MATLAB命名设备“ eth0”,您可以按照此处所述创建自己的.link文件。/etc/systemd/network/

具体来说,我创建了一个/etc/systemd/network/10-eth.link包含内容的文件

[Match]
MACAddress=ff:ff:ff:ff:ff:ff
[Link]
Name=eth0

替换ff:ff:ff:ff:ff:ff为我要更改的设备的MAC地址。重新启动后,名称是所需的。


1
这对我不起作用,我很想知道为什么。
richvdh

1
在Ubuntu 15.10上,这对我不起作用
Jonathan Hartley

1
从16.04版开始,此功能将无法使用。
EnzoR

6

如果由于任何原因@zab建议的答案对您不起作用,您也可以像在此处那样禁用此命名方案。但是@zab提出的方法可能更安全

我只是没有在命令行参数中包含biosdevname = 0,它似乎默认情况下处于关闭状态。

应该执行以下步骤:

$ sudo nano /etc/default/grub

在GRUB_CMDLINE_LINUX行添加net.ifnames = 0

GRUB_CMDLINE_LINUX="[previous parameters] net.ifnames=0"

然后生成新的grub文件:

$ sudo grub-mkconfig -o /boot/grub/grub.cfg

最后重新启动系统。


1
您能否详细说明一下,以使该链接在将来不再可用时仍然有用?
Zanna

@Zanna完成了
Dmitriy Kozlov

2
经过无数次尝试遍及整个Internet的一切之后,这就是固定的以太网。通过Serva / PXE安装Linux Mint(或Ubuntu)后,我的情况(将来用于Google搜索)不是以太网,因为愚蠢的网络适配器使用可预测的网络接口名称而不是eth0。发现这里的说明:itzgeek.com/how-tos/mini-howtos/...
ThePCpenguin

从今天开始(安装了所有更新),此功能正常运行。谢谢。
Erutan409 '17

2

这在16.04服务器上对我有用,因为eno1在我这样做时正在显示ifconfig -a。我必须打开界面,ifconfig eno1 up然后执行以下操作:

vi /etc/udev/rules.d/10-network.rules

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="ff:ff:ff:ff:ff:ff", NAME="eth0"

这会立即更改名称,还是仅在重启后更改名称?
Xen2050

2

我在树莓派3上运行16.04服务器(最低版本)时遇到了这个问题,而发布的答案都无济于事。解决问题的方法是禁用此处描述的可预测网络接口名称:https ://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/

通过运行以下命令:

ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
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.