我正在尝试在其中一个接口上设置不同的 MAC 地址,但按照 netplan 文档的尝试没有任何变化。这是在 Ubuntu 18.04 上。
network:
ethernets:
enp10s0:
addresses: []
dhcp4: true
optional: true
routes:
- to: 0.0.0.0/0
via: 10.0.0.1
enp5s0:
addresses: []
dhcp4: true
macaddress: aa:bb:cc:ff:ff:ff
optional: true
routes:
- to: 239.0.0.0/8
via: 10.10.0.1
version: 2
运行 netplan generate 和 netplan apply 并重新启动后,enp5s0 的 macaddress 没有变化
enp10s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.227 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::7285:c2ff:fe53:119c prefixlen 64 scopeid 0x20<link>
ether 70:85:c2:53:11:9c txqueuelen 1000 (Ethernet)
RX packets 3623 bytes 1557193 (1.5 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3066 bytes 291335 (291.3 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp5s0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 68:05:ca:61:a8:fc txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 34 memory 0xfd4c0000-fd4e0000
我错过了什么?
答案1
好吧,我遇到了同样的问题,但最终通过在脚本中添加 match 关键字解决了问题,我的 MAC 地址是 4c:ed:fe:32:de:22,我必须在更改或强制之前指定它。(我还添加了一个联网的渲染器)
network:
renderer: networkd
ethernets:
eno1:
addresses: []
dhcp4: true
optional: true
enp1s0:
match:
macaddress: 4c:ed:fe:32:de:22
macaddress: de:de:de:de:de:de
dhcp4: no
dhcp6: no
addresses: [172.30.0.58/24, ]
gateway4: 172.30.0.254
nameservers:
addresses: [208.67.222.222, 208.67.220.220]
version: 2
我真诚地希望这对你有所帮助:)
答案2
我遇到了同样的问题,Netplan 没有覆盖 Ubuntu Server 18.04 上的 MAC 地址,尽管我使用了 match 子句,如netplan 参考设置新的 MAC 地址之前。
解决方法是创建一个单独的systemd 链接配置/etc/systemd/network/10-override-mac.link
覆盖 NIC 的 MAC 地址,并通过 netplan 配置其余部分。
[Match]
MacAddress=52:54:00:6b:3c:58
[Link]
MACAddress=52:54:00:6b:3c:59
答案3
我相信它只会更改报告给外部连接的 MAC 地址。在本地运行 ifconfig 将始终为您提供接口的真实 MAC 地址。
答案4
我在 Ubuntu-20.04 上,并且有以下几行:
network:
version: 2
renderer: networkd
ethernets:
enp1s0:
match:
macaddress: "xx:xx:xx:xx:xx:xx"
macaddress: "zz:zz:zz:zz:zz:zz"
确实更改了 mac 地址,但随后无法为 enp1s0 等进行任何后续 ip 分配/路由器表条目。我终于摆脱了 netplan 配置中的所有匹配内容。现在我运行 macchanger。一切似乎都正常。这实际上是一个更好的方法,因为 macchanger 每次运行时都会生成一个随机 mac 地址。将其粘贴在 /etc/rc.local 中,长时间休眠,应该可以工作。
sudo macchanger -A -b enp1s0
奏效