创建具有一致网络设备命名的 eth0

创建具有一致网络设备命名的 eth0

据我了解,Arch Linux 使用一致的网络设备命名其中网络设备不再命名为 eth0、eth1 等。

我使用专有的 MATLAB 软件,该软件需要设备 eth0激活。作为一种解决方法,他们建议关闭一致的网络设备命名这里。我认为这在 Arch 中不起作用,但也许我错了,即使它确实有效,我也不确定这是一个好主意。

是否可以创建一个虚拟 eth0 设备来欺骗 MATLAB 激活软件?请注意,这并不是为了(而且我也不认为这样做)违反与 MATLAB/The MathWorks 的任何许可协议。

答案1

您是否尝试过创建空白/etc/udev/rules.d/80-net-name-slot.rules

从 Udev v197 开始,udev 已经实现了可预测的网络接口名称,通过在该路径中创建一个空白文件然后重新启动,您应该将接口名称恢复为原来的名称。

参考: 可预测的网络接口名称

答案2

短期解决方案:

% sudo modprobe dummy
% sudo ip l set dev dummy0 name MyEth11
% sudo ip ad ad 192.168.255.254/30 dev MyEth11
% ip ad show dev MyEth11
14: MyEth11: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN 
    link/ether 6e:73:12:ad:db:8e brd ff:ff:ff:ff:ff:ff
    inet 192.168.255.254/30 scope global MyEth11
% sudo ip l set MyEth11 up

答案3

从 udev v209 开始,这是通过以下方式完成的:

$ sudo ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules

也可以看看,可预测的网络接口名称 - 我不喜欢这个,如何禁用它?

笔记:在同一部分中还提到了其他一些方法:

您基本上有四个选择:

  1. 您禁用固定名称的分配,以便再次使用不可预测的内核名称。为此,只需将 udev 的规则文件屏蔽为默认策略即可:

    $ ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
    
  2. 您可以创建自己的手动命名方案,例如将接口命名为“internet0”、“dmz0”或“lan0”。为此,请在 /etc/systemd/network/ 中创建您自己的 .link 文件,为一个、部分或所有接口选择一个明确的名称或更好的命名方案。请参阅 systemd.link(5) 了解更多信息。

您在内核命令行上传递 net.ifnames=0

相关内容