分享个让 openwrt 的 wifi 使用随机 mac 的脚本

2014-08-11 16:14:39 +08:00
 Missex
/etc/rc.local 中写入如下内容

random_mac(){
local i; for i in wireless.@wifi-iface[0] network.lan; do
local mac; while [ "${#mac}" != "17" ]; do
mac=00$(hexdump -n5 -e '/1 ":%02x"' /dev/urandom)
done
echo ${mac}
uci set ${i}.macaddr=${mac}
uci commit ${i%%.*}
unset mac
done
}; random_mac

这样每次启动后都生成随机mac,下次启动后就使用这个mac,但是本次由于网络相关的
东西已经启动,使用的还是原来的mac,第一次用这个脚本可以手动执行一下。

不是每天重启路由器的可以用cron定期执行这个脚本,在done后面加上 ifup lan; wifi 即


这个做的原因是有些手机软件会把GPS信息和无线mac做关联,关闭GPS甚至没有GPS的
平板只要连入这个路由器也能被定位了。我个人感觉不爽。

不过即便不接入路由器,那些软件好像还能通过扫描周围已关联位置的无线信息进行定
位(这种精度好像低一些)。好在我这里无线信号比较稀疏。 但是如果使用随机的mac
的人多了之后,mac定位数据库也就越来越混乱了,慢慢就失去作用了。

ps: mac格式前面的00好像不是必须的。那个hexdump的参数只能在openwrt下运行,
linux上不行。用while把hexdump包起来是因为我这有时候产生00:12:34*:56 这样的
mac,检查一下长度保证后面不会弄错。
同时修改两个wireless.@wifi-iface[0] network.lan这两个是因为用NirSoft的WirelessNetView
看到的mac是前者的,用arp -a看到的是后者的,没细研究,干脆都改了。
7560 次点击
所在节点    分享创造
7 条回复
Missex
2014-08-11 16:17:14 +08:00
Missex
2014-08-11 16:18:15 +08:00
Missex
2014-08-11 16:21:25 +08:00
v2ex 不能删楼啊,还不能编辑
xieranmaya
2014-08-11 21:52:27 +08:00
所以要贴gist,可以编辑的
Missex
2014-08-11 22:49:32 +08:00
@xieranmaya 匿名的也可以编辑么
xieranmaya
2014-08-12 17:46:15 +08:00
@Missex gist都是有主人的啊好像
napsterwu
2015-06-08 15:57:04 +08:00
挖个坟 openwrt有个包叫macchanger

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/127245

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX