Netplan 未按预期欺骗 MAC

Netplan 未按预期欺骗 MAC

我正在尝试在其中一个接口上设置不同的 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

奏效

相关内容