MAC 地址在大数据时代已经成为对用户进行跟踪的好东西了,在你使用各种公共 WiFi 的时候,你的 MAC 地址已经被记录到数据库中了,当然,主机名以及用于验证的手机号也被关联在一起了。什么?你不想被关联,那好吧,来修改一下 MAC 地址吧。Linux 下开机自动修改 MAC 地址很容易,我也写过一篇博文,用 NetworkManager 自动就可以完成。那么 macOS 下该怎么办呢?

首先创建一个随机生成 MAC 地址并修改的脚本:

#!/bin/bash
randomMAC=`hexdump -n5 -e'/5 "02" 5/1 "-%02X"' /dev/random`
ifconfig en0 ether $randomMAC

这里的 en0 为你的网卡名。如果你的网卡名不是 en0 的话,请修改它。

将这个脚本保存在 /usr/local/randomMAC.sh。你需要执行 sudo 命令来使用 root 权限在 /usr/local/ 下创建文件。

sudo nano /usr/local/randomMAC.sh

写入脚本后,给脚本执行权限:

sudo chmod +x /usr/local/randomMAC.sh

现在脚本就可以随机生成并修改 MAC 地址了,不过该如何让它开机自动启动呢?

在以前版本的 macOS 下,你可以修改 /etc/rc.common 来定义开机自启脚本并修改 MAC 地址,不过现在苹果公司更推荐使用 launchd 来实现自启。

我们通过创建一个 plist 文件来自启这个脚本。

打开编辑器,使用 sudo 命令获取 root 权限创建 /Library/LaunchDaemons/local.randomizemac.plist 文件:

sudo nano /Library/LaunchDaemons/local.randomizemac.plist

内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>local.randomizemac</string>
<key>Program</key>
<string>/usr/local/randomMAC.sh</string>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>

之后执行命令让 launchd 加载这个 plist 文件:

sudo launchctl load /Library/LaunchDaemons/local.randomizemac.plist

现在重启一下试试,看 MAC 地址会不会随机变化呢?

Leave a Reply

Your email address will not be published.