背景:我正在尝试在我的 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 地址wlan0
。bond0..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。