正确应用WiFi MAC地址随机化的方法

正确应用WiFi MAC地址随机化的方法

我想像在 Windows 10 中一样在每次启动时随机化我的 mac 地址。为此,我尝试了以下方法 -
根据帖子,从 NetworkManager 1.4.1+ 开始,我们可以进行 MAC 地址随机化。我的是 1.10.6(使用 Ubuntu 18.04)-

$ dpkg -s network-manager | grep '^Version:'
Version: 1.10.6-2ubuntu1.1

在那篇文章中他指出了这一点要旨了解配置详情。要点几乎完全相同,只是它有一条指令 -

# Be sure to change your existing (saved) connections in
# /etc/NetworkManager/system-connections/*

我不太明白这一点,也不知道该怎么做,所以我跳过了它,希望一切顺利。要点中还有一个链接,指向侏儒博客用于 1.4.0 版网络管理器中的 mac 地址欺骗。

尽管作者给出了一个示例来展示更改,但他提到要更改中的文件/usr/lib/NetworkManager/conf.d,而不是更改中的文件。 现在,在我的情况下,源文件仅包含一个文件,如下所示 -/etc/NetworkManager/conf.d/etc/NetworkManager/conf.d/30-mac-randomization.conf
conf.d/etc

user@user:/etc/NetworkManager/conf.d$ ls
default-wifi-powersave-on.conf

另一个(来自/usr)有-

user@user:/usr/lib/NetworkManager/conf.d$ ls
10-dns-resolved.conf              20-connectivity-ubuntu.conf
10-globally-managed-devices.conf  no-mac-addr-change.conf

我从以下位置编辑了文件no-mac-addr-change.conf-

[device-mac-addr-change-wifi]
match-device=driver:rtl8723bs,driver:rtl8189es,driver:r8188eu,driver:8188eu,driver:eagle_sdio,driver:wl
wifi.scan-rand-mac-address=no
wifi.cloned-mac-address=preserve
ethernet.cloned-mac-address=preserve

到 -

[device-mac-addr-change-wifi]
match-device=driver:rtl8723bs,driver:rtl8189es,driver:r8188eu,driver:8188eu,driver:eagle_sdio,driver:wl
wifi.scan-rand-mac-address=yes
wifi.cloned-mac-address=random
ethernet.cloned-mac-address=preserve

然后我重新启动了网络管理器 -

$ sudo systemctl restart NetworkManager

并从 GUI 重新启动了 WiFi,但 mac 地址仍然相同。通过以下方式检查cat /sys/class/net/wlp2s0 address

这是否与我没有遵循的要点说明有关?我错过了什么?

文件名也重要吗?因为我在其他地方看到的文件名都不一样?

答案1

作者提到要更改 /usr/lib/NetworkManager/conf.d 中的文件,而不是 /etc/NetworkManager/conf.d 中的文件

...如果您是分销商或将文件作为安装的一部分进行安装。用户配置应该/etc

我从以下位置编辑了文件 no-mac-addr-change.conf -

同样:作为用户,您最好不要编辑 中的文件/usr。相反,将文件放在 中/etc/NetworkManager/conf.d,然后覆盖设置。配置文件按特定顺序读取(如man NetworkManager.conf)。稍后读取的文件将修改/覆盖先前的设置。

该文件/usr/lib/NetworkManager/conf.d/no-mac-addr-change.conf禁止更改某些驱动程序的 MAC 地址,因为驱动程序不支持它。因此,除非您拥有这些设备类型之一,否则该文件对您来说没有任何影响,并且添加到该部分也没有任何影响。请参阅部分match-device

请注意,该文件禁止更改某些驱动程序的 MAC 地址,因为这些驱动程序不支持此功能。你有什么问题GENERAL.DRIVERnmcli -f all device show wlp2s0如果你有列出的驱动程序之一,即使你在 NetworkManager 中配置它,它也可能无法工作。

一般来说,查看 NetworkManager 的日志文件。请参阅网络管理器配置文件关于如何启用调试日志记录。您应该查看 NetworkManager 是否无法设置设备的 MAC 地址(以及它是否首先尝试这样做)。


此外,放入wifi.cloned-mac-address=部分[device*]也不起作用。请参阅man NetworkManager.conf。这属于[connection*]

但请注意,[ 下的设置connection*]仅在每个配置文件设置中未指定相应值时才生效。例如,如果您的配置文件名为“我的 Wi-Fi”,则将nmcli connection show "My Wi-Fi"显示wifi.cloned-mac-address所使用的每个配置文件。仅当未设置每个配置文件的值时,才会参考配置文件的回退。因此,通常您不会在 NetworkManager.conf 中设置默认值,而是使用 来设置每个配置文件 nmcli connection modify "My Wi-Fi" wifi.cloned-mac-address random


总结:

   nmcli connection modify "$PROFILE" wifi.cloned-mac-address random
   nmcli connection up "$PROFILE"

   # verify
   nmcli device
   ip link

相关内容