各系统修改 MAC 地址的方法与风险
MAC 地址虽然出厂时烧入网卡,但驱动接受软件设定的值,因此在所有主流系统上都可以修改。常见的正当需求包括:替换故障设备时沿用原地址以免打乱 DHCP 绑定,测试网络准入策略,或规避把 MAC 当唯一凭据的糟糕设计。
修改前必须知道的三件事
用本地管理地址。 把第一字节的次低位置 1,也就是让第二个十六进制字符落在 2、6、A、E 里。这样你的地址不会与任何厂商的全局唯一地址冲突,也不会污染他人的资产识别。原理见读懂 MAC 地址第一字节。
不要抄一个在线设备的地址。 同一广播域内两个相同 MAC 会造成地址冲突,交换机表项反复翻转,双方都会间歇性断网。
改完可能需要重新获取 IP。 DHCP 按 MAC 记租约,换了地址就是新客户端,细节见DHCP 如何用 MAC 分配 IP。
Linux
临时修改,重启后失效:
sudo ip link set dev eth0 down
sudo ip link set dev eth0 address 02:1a:2b:3c:4d:5e
sudo ip link set dev eth0 up
用 NetworkManager 做持久化配置更可靠:
nmcli connection modify "有线连接 1" 802-3-ethernet.cloned-mac-address 02:1a:2b:3c:4d:5e
nmcli connection up "有线连接 1"
NetworkManager 还支持 random 和 stable 两个关键字,分别对应每次连接随机和按网络稳定。想恢复出厂地址,把该属性设为 permanent。
查看真实的硬件地址:
ethtool -P eth0
macOS
sudo ifconfig en0 ether 02:1a:2b:3c:4d:5e
无线接口通常需要先断开当前网络才能生效:
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -z
sudo ifconfig en0 ether 02:1a:2b:3c:4d:5e
macOS 的修改在重启后一律失效,没有官方的持久化方式。近几个大版本对无线网卡的限制逐步加强,部分机型可能直接失败。
Windows
图形界面路径最稳妥:设备管理器,找到网卡,属性,高级选项卡,查找"网络地址"或"Network Address"条目,填入不带分隔符的 12 位十六进制值。
命令行方式:
Get-NetAdapter | Select-Object Name, MacAddress, InterfaceDescription
Set-NetAdapterAdvancedProperty -Name "以太网" -RegistryKeyword "NetworkAddress" -RegistryValue "021A2B3C4D5E"
Restart-NetAdapter -Name "以太网"
是否生效取决于驱动。部分网卡驱动不暴露 NetworkAddress 属性,此时任何方法都改不了。Intel 的有线网卡通常支持,一些廉价 USB 网卡不支持。
风险与合规
违反使用条款。 用改 MAC 的方式绕过公共 WiFi 的时长限制或计费,通常明确违反服务条款,某些司法辖区可能构成违法。
破坏网络运维。 在企业网络里随意改 MAC 会干扰资产盘点、准入控制和故障排查,也可能触发端口安全把端口关掉。
不能提供匿名。 改 MAC 只影响本地广播域,不影响你的公网 IP、浏览器指纹、账号登录状态。把它当隐私手段是误解。真正的移动设备隐私机制是系统内置的地址随机化,它比手工修改更完善,也不会打乱网络运维。
如果只是想确认某个地址属于哪家厂商,不需要修改任何东西,在查询页输入即可。