禁用NetworkManager后Fedora无线MAC地址每次重启变更的解决问询
如何在禁用NetworkManager的Fedora上固定无线网卡MAC地址
既然你已经禁用了NetworkManager,重启后MAC地址自动变更的问题大概率是系统默认启用了MAC地址随机化导致的——这是Fedora为提升隐私性默认开启的特性,但会和你的路由器MAC白名单规则冲突。下面给你两种可靠的解决方法,任选其一即可:
方法一:通过systemd-networkd配置(推荐,如果你用它管理网络)
假设你已经用systemd-networkd来配置无线连接,直接修改对应的网络配置文件即可:
- 先确认你的无线网卡名称,执行命令:
找到类似ip linkwlp2s0这样的无线网卡设备名。 - 打开你之前创建的systemd网络配置文件(通常在
/etc/systemd/network/目录下,比如20-wireless.network),添加[Link]段并指定固定MAC:[Match] Name=wlp2s0 # 替换成你的网卡名称 [Link] MACAddress=aa:bb:cc:dd:ee:ff # 替换成路由器白名单里的MAC地址 [Network] # 保留你原来的网络配置,比如DHCP或静态IP设置 DHCP=yes - 重启systemd-networkd服务使配置生效:
sudo systemctl restart systemd-networkd
方法二:用udev规则(通用,适用于任何网络管理方式)
udev规则会在网卡设备初始化时强制设置MAC,不受网络服务影响:
- 创建udev规则文件:
sudo touch /etc/udev/rules.d/70-persistent-wifi-mac.rules - 编辑这个文件,添加以下规则(根据你的网卡信息调整):
如果你知道网卡的PCI厂商和设备ID(可以通过lspci -nn | grep Network获取,比如02:00.0 Network controller [0280]: Intel Corporation Wireless-AC 9260 [8086:2526],这里的8086是idVendor,2526是idProduct),可以写更精准的规则:
如果你懒得查硬件信息,直接用网卡名称匹配也可以:SUBSYSTEM=="net", ATTR{idVendor}=="8086", ATTR{idProduct}=="2526", RUN+="/sbin/ip link set dev %k address aa:bb:cc:dd:ee:ff"SUBSYSTEM=="net", KERNEL=="wlp2s0", RUN+="/sbin/ip link set dev %k address aa:bb:cc:dd:ee:ff" - 重载udev规则并触发生效:
sudo udevadm control --reload-rules && sudo udevadm trigger
额外注意事项
- 确保你指定的MAC地址已经添加到路由器的白名单中,且没有被其他设备占用,避免IP冲突或连接失败。
- 检查是否有其他MAC随机化配置干扰:查看
/etc/systemd/networkd.conf,如果有MACAddressPolicy=random或MACAddressPolicy=stable,改成MACAddressPolicy=none,或者在具体的网络配置文件中设置该参数。
完成上述操作后,重启系统,执行ip link show wlp2s0检查MAC地址是否已经固定为你设置的值,之后就不会再自动变更了。
内容的提问来源于stack exchange,提问作者elbarna
相关产品推荐
相关产品推荐

