我可以创建一个名为 eth0 的虚拟以太网接口吗?

Ste*_*ütt 25 networking linux-kernel iproute

我正在运行基于 Linux 3.10.5-1 内核的 Arch。该系统使用以太网接口 enp*s* 和 wlp* 等新的事实上的命名约定。然而,这是一个问题,因为我的教育机构正在使用一个名为Maple 17的程序。Maple 的许可系统依赖于名为 eth0 的接口的存在,因为它必须检索其 MAC 地址以验证许可证。这是一个糟糕的解决方案,但我必须解决它。

这意味着我将需要一个具有任何 MAC 地址的 eth0 接口(因为我可以为新的 MAC 地址检索新的许可证文件),这不一定必须工作。事实上,它应该一直处于停机状态。我认为有几种方法可以尝试解决这个问题,但我无法找到任何关于任何想法的信息。

  • 创建没有连接的适配器
  • 为 enp3s0 创建一个名为 eth0 的别名
  • 重命名 enp3s0 或环回接口。

我能找到的内容仅涵盖更改为较新的约定和较旧版本的 udev。无论如何,他们只在 RHEL 和 SuSe 上工作。不过我没有运气就试过了。(persistent-net-names.rules 和 net-name-slot.rules,它们都让我的实际界面停止工作,我的 wlan 界面消失了)

der*_*ert 28

当然。你可以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)
Run Code Online (Sandbox Code Playgroud)

或与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
Run Code Online (Sandbox Code Playgroud)

可能您应该更喜欢第二种方法,就像ipLinux 上的首选网络工具一样,并且您可能已经安装了它。

此外,这两者都在创建带有(我猜)随机本地 MAC 的 Tap 设备,您可以以任何正常方式将 MAC 设置为固定值。

  • @TimeSheep 这不是有效的 MAC 地址。特别是,这是一个多播地址。尝试 00:23:45:67:89:ab。那行得通。但是 02:23:45:67:89:ab 会更好。参见,例如,http://en.wikipedia.org/wiki/MAC_address#Address_details (3认同)