我正在尝试运行一个特定的软件,该软件使用许可证管理器,但没有注意到较新的 Linux 发行版不再命名其网络设备eth0
。它试图验证 MAC 地址,但由于我的网卡是ens1
在 Centos 7 上调用的,所以这不起作用。
该软件的供应商已经在另一台计算机上修复了此问题,我想了解他们是如何做到这一点的。他们创建了某种别名,ens1
以便许可证管理器可以eth0
再次找到。
如果我这样做,别名根本不会显示ifconfig -a
,但在显式调用时它是可见的ifconfig eth0
。使用ip link
命令可以看到如下:
eth0@ens1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT
link/ether [mac address] brd ff:ff:ff:ff:ff:ff
他们到底做了什么?我如何在另一台计算机上重新创建这种别名?
答案1
这可能是使用该macvlan
功能完成的。它允许在现有硬件接口之上添加虚拟以太网接口。对于你的情况,可以这样做:
ip link add link ens1 name eth0 type macvlan
默认情况下,新接口会获得随机选择的本地管理的单播 MAC 地址。或者,您可以使用 指定 MAC 地址address <MAC>
。
答案2
您可以使用 udev 规则将 NIC 重命名回旧eth0
样式。
例如编辑/etc/udev/rules.d/70-persistent-net.rules
为这样的行:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
xx:xx:xx:xx:xx:xx
您的 NIC 的 MAC 地址在哪里。
您还必须更新所有网络配置,以便它使用名称eth0
而不是ens1
看可预测的网络接口名称了解有关为何发生此更改的更多信息。