仅连接到特定 WiFi 网络时,是否可以欺骗我的 MAC 地址?
我想到使用一个脚本,在/etc/NetworkManager/dispatcher.d/
连接之前更改我的设备的 MAC 地址,然后在断开连接时将其更改回硬件默认值,但是我所知道的所有更改 MAC 地址的方法都需要停止并重新启动“NetworkManager”服务,这在运行脚本时显然不可能发生。
除了“NetworkManager”操作之外,还有其他方法可以检测网络连接的变化吗?我专门针对 Fedora 提出这个问题,但我确信该解决方案对 Linux 也是通用的。
答案1
如果您告诉 NetworkManager 改变它。为此,请802-11-wireless.cloned-mac-address
在 NetworkManager 配置文件中指定:
nmcli con modify "My Little Wifi" wifi.cloned-mac-address 12:34:56:AB:CD:EF
nmcli con up "My Little Wifi"
# (reconnect to apply)
(该参数默认permanent
使用硬件地址,也可以设置为preserve
使用外部工具设置的地址。)
除了“NetworkManager”操作之外,还有其他方法可以检测网络连接的变化吗?我专门针对 Fedora 提出这个问题,但我确信该解决方案对 Linux 也是通用的。
不会。Linux 可以一般性地告诉你它当前关联的 SSID,但那是为时已晚– 需要做出改变前用户空间告诉内核与特定网络关联。
- 要更改接口的 MAC 地址,必须将其设置为“down”(禁用),否则操作系统将拒绝更改。
- Wi-Fi 连接是在对等体之间建立的识别者他们的 MAC 地址。如果您在关联时以某种方式更改了地址,AP/路由器将不再识别您,客户端必须重新关联。
因此,您需要连接到特定发行版的网络管理程序。诚然,它们中的大多数(包括 NetworkManager)使用相同的wpa_supplicant软件内部有实现,但是 1)它通常以不同的方式从不同的来源发送配置,2)它只有一个选项可以随机化 MAC 地址,而不能使用特定的 MAC 地址。