使用 Ubuntu 20.04.2 LTS 更改 Raspberry Pi 4 Model B 上的 WiFi MAC 地址

使用 Ubuntu 20.04.2 LTS 更改 Raspberry Pi 4 Model B 上的 WiFi MAC 地址

我没有足够的信心去报告错误,但至少会有一些令人困惑/意想不到的结果。

在 Google 上搜索“ubuntu change mac”和“ubuntu change mac netplant”这两个主题的前 20-30 个结果,我发现了以下非常相似的尝试:

ip link set dev wlan0 down
ip link set dev wlan0 address 00:11:22:33:44:55
ip link set dev wlan0 up

或者

apt install net-tools
ifconfig wlan0 down
ifconfig wlan0 hw ether 00:11:22:33:44:55
ifconfig wlan0 up

或者

apt install macchanger
ip link set dev wlan0 down
macchanger --mac=00:11:22:33:44:55 wlan0
ip link set dev wlan0 up

以上所有操作似乎都会更改 wlan0 的 MAC 地址,并且根据我的 WiFi AP,注册的设备具有新的 MAC 地址 00:11:22:33:44:55,但 DHCP 服务器继续从 wlan0 的原始 MAC 地址接收请求。我以前从未见过这样的事情。进行一些简单的 ping 测试会导致连接大量中断,产生高达 50% 的数据包丢失。

看起来更好的方法(希望在重启之间保留更改)应该是编辑 /etc/netplan/50-cloud-init.yaml。它在这里:

network:
    ethernets:
        eth0:
            dhcp4: true
            optional: true
    version: 2
    wifis:
        wlan0:
            access-points:
                    "WiFi":
                        password: "12345678"
            dhcp4: true
            macaddress: 00:11:22:33:44:55
            optional: true

然后做

netplan try
netplan generate
netplay apply

成功更改了接口的 MAC 地址,现在 AP 和 DHCP 服务器正在查看新的 MAC 地址。但再次出现大量数据包丢失。重启后,旧 MAC 地址仍在使用,我必须再次使用 netplay try|generate|apply 来获取新的 MAC 地址。

我的 netplan 配置有问题吗?或者 Raspberry Pi 4 B 驱动程序可能不允许更改 MAC?或者我应该使用不同的渲染器?

答案1

我放弃使用 netplan,并决定直接配置 systemd-networkd 渲染器。这里是解决方案。

vi /etc/systemd/network/00-default.link

[Match]
MACAddress=original MAC

[Link]
MACAddress=spoofed MAC
NamePolicy=kernel database onboard slot path

相关内容