
路由器和幽灵设备
今天要记录一下和路由器刷OpenWrt有关的两件事。也算是你第一次用Obsidian来记录东西,我感觉你现在的用法和正常的写日记也没什么区别(有点怪,哈哈),可能还是要用到双向链接的时候才能体现出这个新工具的厉害,我这次就多试试看吧。
其实家里的网络本身不存在什么问题,小米的原厂固件在性能上比第三方只快不慢(一个有趣的批判),之所以要去刷OpenWrt是一个美学上的考虑,就是因为小米原本的固件实在是太丑了,而且这个公司也实在是很恶臭。当时也是有意思,为了买最便宜的支持WIFI-6的路由器上了小米(但话也不能这么讲,因为小米的那个家用吸尘器和电动螺丝刀还是有点东西的,你自己也不讨厌)。Anyway,就让我们这样继续下去写吧。
继续刚刚的话题,其实你早就看小米这个后台不爽了,当年刚刚买到的时候就想回来立刻刷系统,这个几乎是你在中国活了大概20年养成的一个习惯。但那个时候就有一个非常奇特的逆反心里,这个心里相当的微妙,如果不是亲身经历过,一般人是不可能理解的——我在中国需要走那么多的弯路才能获得一个勉勉强强可以用的网络,到国外后我只要点一下YouTube的按钮就行了。默认就是最好的,这个不是懒,就是为了报复在国内那个事事都要话大费周章的自己(可以说是相当变态了)。
好吧,最后又让你想去玩路由器的,竟然是因为朋友在折腾他的那个软路由——最好玩的是,那个软路由还是你在出国前“送”给他的,哈哈,说“送”有点过分了,算是各种机缘巧合吧。
然后我就开始在网上找各种教程和固件,一开始还想试试看老毛子(我在中国的时候对老毛子的固件相当满意),但很快就发现现在已经是OpenWrt的天下了。找到了上面提到的那个帖子,以及一些其他人刷机的攻略。其中,这篇攻略是最重要的(也是让我后面感到非常蛋疼的,而且还不止我一个)。
然后我就去按照这个攻略刷路由器了,首先是用到了一个开源的,专门针对小米的SSH工具,这一点也证实了你的一些想法,就是对于国外的用户来说——1.他们是用小米的产品的,也许是因为外型设计,也许是因为价格便宜(用更低的价位买到那个档次的硬件);2.他们和我,以及和所有正常人类一样,都受不了小米的反人类后台,或者说,他们也比较在意自己的隐私,不可能接受一个这样的公司去把持自己家里面的网络出入口。总而言之,这一步是非常顺利的,直接下载了几个python脚本,然后运行一个bash命令——呃,我记得第一步的时候也卡住了一次,不知道是不是因为网络的问题,第二次选择进入SSH后台就比较顺利了。搞定SSH后,就是往里面放Uboot,还好这一步是按部就班地去做,不然后面刷坏了也救不回来。第三步是继续按照攻略,往路由器上面传脚本,墙外不存在GitHub连不上去的问题,但我却发现wget在路由器那个Linux里面用不了,只能下载到本地,然后用scp上传上去。然后就是复制粘贴剩下的脚本,正当我以为万事大吉的时候——BOOM,路由器挂了!
我这里说路由器挂了,指的是上传了固件后(顺便也设置了启动项),然后重启,结果发现几个地址都无法打开——最恐怖的是,路由器上面的灯压根就不亮!当然,作为一名久经沙场的老兵,看到这一幕倒也不是很慌,大不了就是去买一个路由器——哈哈,还是有点慌的,那种肾上腺素飙升的感觉,血压拉满了。
接着就是开手机热点,用笔记本电脑在网上疯狂搜索,结果发现自己当然不是唯一的受害者,帖子的来源还是亲爱的恩山论坛,亲爱的坛友也和我一样参考一模一样的攻略,刷了一模一样的固件,复制粘贴同一行脚本,然后果不其然地挂了。
这个帖子的最后一楼是我的救命稻草,ID叫shiki505026747的朋友表示自己遇到了一样的问题,然后“救回来了”,原因就是上面提到的,那一步已经把Uboot给刷进去了,就算系统刷不进去也无所谓。他的那句话成为了黑暗中的一盏灯…(以下省略一万五千字),“按住Restart 插电源 等一会 ip输入不死后台的ip 192.168.1.1;192.168.0.1;192.168.2.1 就能进不死后台具体是哪个记不到了 进了openwrt的后台后 选择本地的固件包 刷进去 然后按照固件包里的ip进入管理界面配置路由器就行“。当然,事情不可能那么顺利,如果顺利我也就不会写了。
我在Zen(一款基于火狐的、最近比较流行的、模仿了Arc的浏览器)上打开了Uboot的后台(地址是192.168.10.1,很有趣,因为我记得我上初中的时候第一次进那个水星路由器的后台也是这个地址。然后我就准备上传OpenWrt的固件(因为当时的网络已经全部断了,所以我不得不用手机开热点拿流量下载)。然后我上传后,Uboot提示我,不是可用的固件,我就从这里开始怀疑人生了——妈的,不是我下载错了文件吧。我首先开始怀疑是下载的文件格式不对,然后开始怀疑下载的版本不对,然后开始怀疑我的路由器到底是不是红米ax3000(还是小米?或者什么别的路由器,因为这个型号的路由器应该是被小米代工过然后给电信什么的也做了定制版)。总而言之,我花了大概一个小时的时间疯狂下载各种固件,搜索资料,确定自己的路由器到底是什么型号(此时我还是可以ssh进入服务器后台的),令我百思不得其解的是,我一开始下载的就是正确的固件,但就是无法通过Uboot刷入后台——不会是Uboot没搞对吧?这个时候,我有点不知道怎么办了。
随着研究的深入,我也看到了恩山论坛的更多帖子(我真的发现很多人都在玩这个红米ax3000的路由器,看来当年还是一个热门款),有人说还是固件的问题,有人说是Uboot的问题,后面这个帖子把我吓了一跳,因为事主的确是把自己的路由器搞坏了。时间已经来到了接近晚上11点的时候,终于,我找到了这个拯救了我的帖子,根据楼主wawayesyes的说法,他应该是跟我进行了一模一样的操作,然后发现:操,竟然是浏览器的问题,火狐就是不行(因此Zen可以),换成Chrome就OK了。
当时已经是抱着死马当活马医的心态,我又拿手机浏览下了一个Chrome的离线版(更加有戏剧性的是,当时是10月的最后一天,我其实没什么流量了)。漫长的下载和安装后….BOOM!!!!!!我终于把固件通过Chrome上传到了Uboot,整个过程没有任何问题,完全丝滑流畅。在上传完固件后,大概十几分钟我就设置好了整个OpenWrt的接口,重新回归文明世界。第二天把OpenWrt优化了一下,顺便也测了个速度——哈哈,其实和最初的时候用原厂固件差不多(根据我之前看的那个测速帖,这个固件已经是目前最快的固件了)。到此为止,惊心动魄的刷机之旅告一段落。
第二个和OpenWrt有关的故事,就是前面说的那个优化系统时候发生的。因为我人就在国外不需要任何翻墙的服务,所以OpenWrt也几乎没有什么值得优化的地方(我现在也在怀疑我的优化,或者说claude建议我的优化是不是负优化),我顶多就装一个好看点的主题,然后把几个flow offloading都打开,然后就完事了。事情的起是,我在一切优化都完成后,把家里几个设备绑定了静态的域名(这个其实挺重要的,因为现在这篇文章就保存在家里的服务器上,如果我重新搞域名的话,还要进去一个一个改ddns的设置,实在是太烦人了)。Anyway,我绑定了很多的设备和局域网的地址,几乎是做到了一一对应后,我开始检查家里到底有哪些设备,然后一个一个连上网,确定没问题后,就在下午差不多3点40的时候出门了(这个时间很重要)。
我在大约下午5点的时候回来了,回家后打开电脑又进入了OpenWrt的页面,顺便就检查了一下设备列表——这一看就引发了接下来的故事。
情况是,我发现家里有一个“幽灵设备”,在我的路由器里面显示为:
192.168.31.201 32:4F:D8:FC:12:86 11h 37m 46s
没有设备的名字,MAC地址也查不出个所以然——因为是这样,我就默认是我的那个服务器在运行docker容器的时候,某一个docker容器使用了bridge之外的网络,然后创建了这个不存在的设备。接下来,我就开始在chatgpt和claude的指导下开始一个一个排查我家里的所有设备。但无论我怎么查,我都找不到上面这个幽灵般的MAC地址,不存在于我的服务器上的任何一个容器,也不存在于任何一个真实设备,而且,它真的进入了我的局域网——也就是说,这个设备知道我的Wi-Fi密码,这下我就不能忍了。
再次ssh进入了上面那个OpenWrt的后台,在里面搜索所有和32:4F:D8:FC有关的日志,发现了一个很奇怪的现象,这个设备出现在日志的时间,就是下午的3点40分——正好就是我出门的时候!不会是哪个傻逼在我踏出家门的时候连我的Wi-Fi,还正好猜对了密码吧?这件事的概率虽然约等于不可能,但造成的破坏程度却让我无法忽视,我进行了第二轮排查…。
在家里找各种设备的时候,我其实发现要连Wi-Fi的东西并不多(我家并没有什么会把数据偷偷传回中国的扫地机器人)。最后,我的目光落在了…Apple Watch上。过去,我一直以为Apple Watch应该是靠蓝牙在手机之间传输数据的,但我也确实记得Apple Watch有连接Wi-Fi的选项,难道…
破案的一瞬间,是我打开了Apple Watch的网络选项,看到了MAC地址,好吧,就是32:4F:D8:FC:12:86!这个是Apple Watch的私有MAC地址,是苹果为每一个Wi-Fi网络建立的一个随机MAC,而且会定时轮换(也就是说,如果你开着这个功能的话,过一段时间家里就会出现一个你不认识的设备)。苹果搞这个功能的初衷当然是为了隐私(防止公共Wi-Fi通过MAC地址来追踪设备),但对于我来说,这个功能除了浪费我三个小时外没有任何意义。回头想想,就是在我出门的那个瞬间,Apple Watch和手机的蓝牙断开,然后它就开始搜索Wi-Fi网络,通过手机共享的密码登录了我的Wi-Fi。
为了纪念这个生活中的侦探剧,拜托ChatGPT撰文如下。







