更改 eth0 的 MAC 地址

更改 eth0 的 MAC 地址

背景:我正在尝试在我的 WSL2 实例中安装 Vivado,但它的许可方案需要固定的 MAC 地址。

我可以使用以下命令更改 MAC 地址:

sudo ip link set dev eth0 down
sudo ip link set dev eth0 address 00:15:5d:35:ea:15
sudo ip link set dev eth0 up

此后,我可以验证我的 MAC 地址已更改,但网络看不到

ping www.google.com例如,不再解析:

ping: www.google.com: Temporary failure in name resolution

我假设 Windows 端存在某种防火墙或过滤器等东西,阻止具有新 MAC 地址的接口看到外界。

有什么建议么?

答案1

默认情况下,Hyper-V 虚拟交换机(也用于 WSL2)设置为防止来宾虚拟机进行“MAC 地址欺骗”,并且只会转发具有虚拟机配置中最初分配的 MAC 地址的帧。

但是 FlexNet 许可软件可能会寻找其他接口名称——似乎除了 之外eth0,它还会从 、 和 收集 MAC 地址wlan0bond0..9找到vmnic0..9的任何一个 MAC 地址都可以用作许可的“以太网主机 ID”。

(此外,至少某些版本的 FlexNet 会将其xp0作为第一个选项进行查找,如果找到则专门使用它,而不像其他接口那样组合成一个列表,从lmhostid工具中可以看出。)

因此,如果您需要一个 MAC 地址永远不会改变的接口,请创建一个虚拟的一个看起来像以太网的(Linux 提供了几种类型,‘虚拟’接口或没有成员的‘桥’都可以同样工作)具有列出的名称之一:

ip link add vmnic0 type dummy
ip link set vmnic0 addr 00:15:5d:35:ea:15

#ip link add vmnic0 type bridge
#ip link add vmnic0 type bond
#ip tuntap add vmnic0 mode tap

我还没有专门用 Vivado 测试过这个,但它可以与使用 FlexNet 通用的其他供应商一起使用lmgrd

(在物理系统或完整的虚拟机上,也可以将 eth0 重命名为其他名称,然后在其位置创建一个虚拟 eth0,但由于其架构方式,这可能不适用于 WSL2。)

答案2

这个回复可能来得太晚,无法帮到你,但我刚刚遇到了类似的事情,在这种情况下,使用 Win10 安装的 ISE,它在 VM Red Hat 类型的 Linux 中运行。它需要一个已知的稳定 eth0 MAC 地址来进行 IP 许可。

我使用的方法是编辑位于的文件/etc/sysconfig/network-scripts/ifcfg-eth0并用nano替换HWADDR= <some_MAC-Address>一行MACADDR=<my_wanted_MAC_address

仍然不能 100% 确定这是否会解决我的许可证问题,但至少 ifconfig 现在报告“my_wanted_MAC_address”已分配给 eth0。

请注意,您需要使用sudo来编辑 ifcfg-eth0。

相关内容