我正在运行基于 Linux 3.10.5-1 内核的 Arch。该系统使用以太网接口 enp*s* 和 wlp* 等新的事实上的命名约定。然而,这是一个问题,因为我的教育机构正在使用一个名为枫树 17。 Maple 的许可系统依赖于名为 eth0 的接口的存在,因为它必须检索该接口的 MAC 地址来验证许可证。这是一个糟糕的解决方案,但我必须解决它。
这意味着我将需要一个具有任何 MAC 地址的 eth0 接口(因为我可以检索新 MAC 地址的新许可证文件),但该接口不一定能工作。事实上,它应该一直处于下降状态。我认为有几种方法可以尝试解决这个问题,但我还没有找到任何有关任何想法的信息。
- 创建没有连接的适配器
- 为 enp3s0 创建一个名为 eth0 的别名
- 重命名 enp3s0 或环回接口。
我能找到的内容仅涵盖更改为较新的约定和旧版本的 udev。无论如何,他们只在 RHEL 和 SuSe 上工作。我尝试过但没有运气。 (persistent-net-names.rules 和 net-name-slot.rules,它们都只是让我的实际接口停止工作并且我的 wlan 接口消失)
答案1
当然。您可以tap
相当轻松地创建设备,可以使用tunctl
(来自 uml-utilities,至少在 Debian 上):
# tunctl -t eth0
Set 'eth0' persistent and owned by uid 0
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr a6:9b:fe:d8:d9:5e
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
或者与ip
:
# ip tuntap add dev eth0 mode tap
# ip link ls dev eth0
7: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 500
link/ether 0e:55:9b:6f:57:6c brd ff:ff:ff:ff:ff:ff
也许您应该更喜欢第二种方法,因为ip
它是 Linux 上的首选网络工具,并且您可能已经安装了它。
此外,这两者都使用(我猜)随机本地 MAC 创建分接设备,您可以通过任何正常方式将 MAC 设置为固定值。
答案2
您还可以设置 udev 规则来为您的网卡指定您想要的名称:
https://wiki.archlinux.org/index.php/Network_Configuration#Change_device_name
当然,你不应该告诉 udev 将它们称为 eth0、eth1 等。如果你只有一张 wifi 卡,Maple 会做什么?
答案3
我正在寻找一个完全没有有线网卡的计算机的非常类似的问题。这个解决方案看起来不错:http://jms.id.au/wiki/FakeEth0
基本上,这个想法是创建/修改一些文件来创建一个虚拟接口:
添加/etc/modules-load.d/dummy.conf
:
# load dummy interface module
dummy
添加/etc/udev/rules.d/70-persistent-net.rules
:
SUBSYSTEM=="net", KERNEL=="dummy0", NAME="eth0"
然后在/etc/network/interfaces
添加:
iface eth0 inet static
hwaddress DE:AD:BE:EF:CA:FE
此时您应该能够执行modprobe dummy
并检查以确保接口设置正确。如果您使用modprobe而不是重新启动,它可能不会设置mac地址;在这种情况下,请执行 ip link set dev eth0 地址 de:ad:be:ef:ca:fe。
答案4
最简单的解决方案 - 尽管这只适用于具有一张以太网卡的系统:
ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules
Arch Linux 使用“可预测的命名”。这会将其关闭。