#14513 – Vtuber, That’s not my neighbour, and some history

昨晚在enn(https://www.youtube.com/@EnnSingsCh)玩That’s not my neighbour的stream里玩得很开心。其中一个环节是解析一段密码,然后回答加密的问题。

当时手边已经打开了攻略,所以已经知道了明文甚至是答案,然而看着enn和cleo(https://www.youtube.com/@AkariCleo)在现场想不到如何使用key来解开原文的时候,我忽然开始了一段短暂但非常有趣的旅程。

问题:

“The key is hide. EQEY QBXM MBIA MWXM XUES MCMS BQIX WUEW AHWY MV?”

1.算法

有4个字母的密钥,有4个字母一节的密文,答案感觉是要呼之欲出了,然而算法在哪儿?

当然在那个时候我已经知道明文了,至少我能记住一小部分,当时就在草稿纸上写了这么一些东西:

clip_image001

在开始做这个图之前,我其实对答案已经有一些预期:

①这是一个游戏,所以算法一定非常简单。

②密钥、密文和明文的形式高度提示一种需要用到加减运算的算法。

③我猜测从字母到数字的转换应该是简单的一一对应,而且很有规律,而不像真正的加密工具那样需要一个专门的转换表(如这个在冷战时期实际使用的对应表:(https://www.ciphermachinesandcryptology.com/en/table.htm))。

于是我首先写出了右边的对应表,然后选择一个字母对进行检测(写在左侧)。当密钥、明文和密文对齐而且将数字写在旁边的时候,答案简直在眼前直接跳出来了。

首先,将字母和数字对应起来。A=1,B=2……Z=26。

然后,将密文字母对应的数字减去密钥对应的数字。当产生负数的时候,将结果加上26。

最后用得出的数字通过对应表得出原文。

不过当我得出这个算法的时候两位已经决定放弃抵抗去直接看攻略了,所以这个计算本身也就失去了意义。

然而这个结果让我想到了一些以前听说过但是真的没有自己动手做过的事。

2.已知明文攻击(Known Plaintext Attack)(https://en.wikipedia.org/wiki/Known-plaintext_attack)

如果没有密钥的话,能不能解出来?

当然我是没办法擦除自己的记忆重头来过了,我也缺乏需要的数学能力,但是能不能试着模拟一下?

首先,还是需要有一些预期,不然需要考虑的事情太多了。

①还是那句话,这是个游戏,别太难。

②这肯定是英文(x,从标点符号看来,还是一个疑问句。

③四个一组。

最后这句话有点扯淡。大概是因为之前看了太多奇怪的书(比如这本:https://en.wikipedia.org/wiki/The_Code_Book)和相关资料的缘故,我觉得这样写的密文不怎么可能是ROT13(https://en.wikipedia.org/wiki/ROT13)那样的简单替换式体系。它更可能是一种手工的算术加密算法,类似Enigma(https://en.wikipedia.org/wiki/Enigma_machine)那样的东西,但是简单到可以用手工处理(比如这种加密方式的最早形式,Vernam Cipher:https://en.wikipedia.org/wiki/Gilbert_Vernam)。

当然了,更可能是因为我有了之前解释算法的时候的经验。

有了这些前设之后,就可以开始实验了。

首先还是建立一个最简单的字母和数字的替换表,A=1,B=2,如此类推,直到Z=26。

然后是选择一些可能会出现在英文问句首部的词语,最好是4个字的(只是因为密文是4个字一组),比如WHAT,WHEN,HAVE,DOES之类。

WHAT=23 8 1 20

WHEN=23 8 5 14

HAVE=8 1 22 5

DOES=4 15 5 19

接着,将密文的片段转换成数字:

EQEY=5 17 5 25

将两组数字对齐,然后逐个用明文减去密文:

WHAT-EQEY=(23 8 1 20)-(5 17 5 25)=18 -9 -4 -5

WHEN-EQEY=(23 8 5 14)-(5 17 5 25)=18 -9 0 -11

HAVE-EQEY=(8 1 22 5)-(5 17 5 25)=-3 -16 17 -20

DOES-EQEY=(4 15 5 19)-(5 17 5 25)=-1 -2 0 -6

这样就得到了4个可能的密钥。至于为什么用减法?因为我有前设经验(x。但是用加法的话,会发现很多数字都会超出1-26的区间,减法虽然会产生很多负数,但是这些负数的绝对值都在1-26之间出现,这样看起来更有可能还原出可用的密钥来(如果密钥本身是字母的话)。

将第二节密文转换成数字:

QBXM=(17 2 24 13)

将4个密钥叠加上去,再转换成字母。如果得数是负数或者0,加26,大于26,减26,这种算法能够让得到的结果回归到1-26的区间内:

(18 -9 -4 -5)+(17 2 24 13)=35 -7 20 8,转换后得到9 19 20 8,ISTH

(18 -9 0 -11)+(17 2 24 13)=35 -7 24 2,转换后得到9 19 24 2,ASXB

(-3 -16 17 -20)+(17 2 24 13)=14 -14 41 -7,转换后得到14 12 15 2,NLOB

(-1 -2 0 -6)+(17 2 24 13)=16 0 24 7,转换后得到16 26 24 7,PZXG

将两段猜测的明文拼合起来,可以发现,用WHAT作为可能明文计算出来的密钥产生出来的第二段明文拼起来是最像人话的:

WHAT ISTH

WHEN ASXB

HAVE NLOB

DOES PZXG

当然了,如果觉得这样还不够说服力的话,完全可以将第三段密文也进行上述同样的运算,再将得出的结果拼合起来再进行评价。因为这个算法的难度不高,慢慢实验总是可以的。

细心的人会发现以这种方法得出的密钥和游戏里提供的密钥(hide=8 9 4 5)不一致,不过这里使用的算法和游戏里的有区别(游戏里是密文减去密钥,这里是密文加上密钥),所以需要的数字会有一些不一样。

3.那这些事情又有什么关系?

确实,真的没什么意义(x,我的算法甚至很可能是错的。

但是我真的没想到会在一个晚上的时间将一个历史上非常重要的事件亲手模拟了一次。

前面提到,Gilbert Vernam发明了这种利用非进位加法进行加密的方式,他发现这种方式尤其适合用在密码机上。

1923年,德国吸取在一战期间密码被破译的教训,使用这个原理的改进版开发了Enigma密码机。

1932年,Marian Rejewski(https://en.wikipedia.org/wiki/Marian_Rejewski)在波兰与其他语言学家、数学家一起,通过对Enigma加密的密文进行大量的统计、语言学和数学分析,基本明确了Enigma的加密算法,而且可以通过对算法的分析将当天使用的密钥恢复出来,这样一整天的加密密文都可以被解密了。

在战争时期,能够破译这些加密的军事指令的意义不言而喻,因此Rejewski在德国入侵波兰的时候迅速被转移到安全的地方,而他破译Enigma的早期工作被交到了英国人手里。

英国情报机关在Bletchley Park(https://en.wikipedia.org/wiki/Bletchley_Park)的密码破译机关最终将Rejewski的部分研究结果和自身基于已知明文攻击得出的一些结论结合起来,完成了对Enigma密码的破译工作。这个工作一部分是得益于德国人写公文的坏习惯:他们总是会在一些固定的地方出现一些固定的词语,这些词语被作为已知的明文用来进行密码分析。

这些研究最终奠定了现代密码学的基础,促进了电子逻辑工具的进步,最终导致了通用计算机的发明和发展。

这是相当有趣的一段历程。

#14438 – How to stop worrying and love the <beep>

20240210_101907

FUCK Photonicat。

两三次被包里放的表面温度高达80摄氏度的东西烫到手之后,我决定放弃这玩意了。

之前我说过我大概会settle在nighthawk m6上,然而缺乏LTE band 39的结果是中国移动的wide-area覆盖根本没法用,有次出门在高速公路上断流很久才知道。

所以又回去用了一阵E750,不过E750的AC的latency真的是用出火(AC也就算了,关键5GHz只有一根天线,7个设备真的有些力不从心),于是又买了个无电池的Photonicat(有电池的机型因为过热导致电池损坏,寿命不到1星期……没爆炸就该偷笑),然而巨大的发热量始终还是问题。

而且神奇的是,同一家公司出品的模块,em05的信号就是比ec20差,即使换了Thinkpad的4G天线也一样。kami know why and I’m not the kami in the know.

我关注了axt1800一段时间,gl-inet的固件支持了USB上的4G空口模块一段时间,EC20也在此列,问题是官方一直说SMS功能只能用于Spitz AX等内置4G/5G的机型。因为我还用这个卡接收各种验证码,没有SMS功能麻烦会非常大。

然而某天忽然一想……如果用一个其他公司的设备充当空口,以USB tether连接模式连接到openwrt路由器上的话,不就能够解决SMS接收的问题了么?之前Photonicat如果禁用em05的话,似乎发热量是真的会降一点。

于是拿了一个闲置的E5576做实验。E5576和我之前用的华为设备的区别是可以完全关闭自带WiFi,仅仅通过USB RNDIS共享网络,这样的话搭配已有WiFi空口的openwrt设备就不会造成太多干扰和其他不便。

It freaking works.

于是立即下单买了一个AXT1800,这玩意里面有风扇,而且是胶壳,我就不信它能比Photonicat更烫。

然后就有了这个abomination。

6m_299534

然而这玩意第一天就有问题:过热。

axt1800的风扇按照原厂的缺省设置在包里根本提供不到足够的风量,侧面天线也阻挡了相当部分的气流,即使有个pvc外壳限制了表面温度,axt1800和E5576的发热量很快就会导致E5576停摆掉线。

对于这么多年都习惯了无缝24×7连接的我来说,这是绝对不能接受的事情。

天哪20年前能拨通96169以33.6kbps联网的耐性哪儿去了……

于是决定放弃E5576,本来加个独立的路由器做空口已经够神经,如果不好用那就没有坚持下去的理由了。EC20的USB模块不用200块钱一个,买一个做实验似乎也并不是太大的开销。于是买了个带USB头的模块和一根超短的USB延长线,硬是将模块塞了进去。

一开始感觉还相当不错,连接速度虽然并不很快,也并不比用E750差得到哪儿去(两者使用同一个型号的模块),风扇经过调整之后发热的情况也好了一些(EC20硬塞进了外壳内,对风道的影响比预期中小很多)。

如何塞进去?axt1800的主板是反着装的(底部朝上,元件面、风扇和散热片朝下),底壳和散热片之间的空间放好可以塞一个EC20进去,加上一对天线对进风的影响也不是很大。连接线就成了问题:我买的USB 3超短延长线已经算是市面上比较小的了,但是再小也不可能从壳体的缝隙里伸出来,于是壳体就只能被牺牲掉一点……用着倒还行。

SMS的功能最后在研究gl-inet的脚本的时候给研究出来了……

gl-inet是使用smstools3这个daemon来提供SMS和Web interface的界面的,这点和E750一样。但是这个版本的smstools3的设置文件似乎是根据硬件安装情况自动生成的。

在/etc/init.d/smstools3里面是这样的:

……
start_service() {
        if [ -e “/lib/functions/modem.sh” ]; then
                . /lib/functions/modem.sh
                bus=$(get_modem_bus)
        fi

……

问题是这个modem.sh根本不会去搜寻usb总线上的EC20,它似乎默认只会去搜索一下pcie总线。这对于内置5G机型来说是正常的,他们只是费事再想还有人要用USB上的空口设备……

在网上找了一阵以及做了一些实验之后,我发现只要用USB总线的序号替代这行里原有的$bus参数就可以了:

gl_modem -B 1-1 sms-config > $CFG

接着重启脚本,一切运作正常。

WHAT。

又用了几天,看着那根连接线不顺眼,于是买了工业用PH2.0的USB连接线以及使用同样端子的EC20模块,然而发现连接极其不稳定……浪费了两根连接线和两个模块之后,我决定将这些东西全部扔进垃圾桶。

axt1800侧面有个toggle开关,原厂的固件设置是用来开关VPN的,但是因为“合规”的问题,在国内出厂的机器在flash的某个位置写了一个flag,系统启动的时候见到这个flag就会隐藏相关设置,在国内的文档里直接声称这个开关不能用。

……修改掉这个flag之后所有不该出现的东西都出来了,然而我只想要这个开关执行一个小脚本:

/etc/gl-switch.d/wifi.sh
#!/bin/sh

# 2023-07-25
# /etc/gl-switch.d/
# uci show wireless
# source: https://forum.gl-inet.com/t/feature-req-wifi-on-off-with-side-switch/2896/41

action=$1

if [ “$action” = “on” ]; then
         uci set wireless.radio0.disabled=’0′
         uci commit wireless
         wifi reload
         logger -p notice -t wifi-toggle “radios enabled”
fi

if [ “$action” = “off” ]; then
         uci set wireless.radio0.disabled=’1′
         uci commit wireless
         wifi reload
         logger -p notice -t wifi-toggle “radios disabled”
fi

exit 0

这样我只要回家就能一键关掉axt1800提供的5GHz WiFi了,和以前用E750一样,远比用其他设备都方便。

然而机器还是热。gl-inet整了一个很高级的PID control logic来管理这个风扇的转速,甚至将参数都直接暴露出来给用户使用,就是打死不肯像tpfancontrol那样给一个简单的stepping control……

于是我决定向天线下手。第一个图片里有一个做备件的axt1800和正在用的1800,仔细看就能看到正在用的机器上缺了点东西。两边的天线不过是用来放pcb天线的外壳,拆掉之后用防热胶带贴在机壳内侧,信号还能接受:反正在使用的时候正常我不会离开它超过20米是不是……

#14398 – 桑浦山大社2024年新年致辞

“今年一定会比去年更糟。”

“然而肯定会比来年更好!”

据说是伟大导师舵手whatsoever Envar Hoxha的名言,如果是真的,我敬他是条汉子。


原本真的以为自己就算不能全身而退,至少也会比别人好一点。

后来才意识到自己的情况也非常严重。

前方根本没有路,连定向力也没有了,不知今夕是何日,不知身在何方。

不知自己是谁,为甚么而存在。

不知是否存在“自己”。


现在也许知道的唯一的事情是,未来应该不会有太多好事发生。

然而这也意味着没有太多更出乎意料的事情会发生了。

于是就按着这样的未来作出计划吧,我仍然相信计划的价值,即使它并不会改变什么。

至少,有一样自以为有用的事情可以做。


很久不写什么东西了,所以显得很支离破碎。

大概是自己的*精神*(psychiatric)状态的反映。

希望可以再未来更重视一点?

这似乎意味着会部分放弃一些用了很久的东西,那个因为人为原因已经基本变得不可用的东西。

那是多么有趣的过去。

最近三、四年似乎都没有认真地哭过一次,昨天晚上才发现。

并不期待那样的事情发生,然而又希望至少能恢复那样的感情。

桑浦山大社 宫司 九天玄女 迢柳娟

#14264 – Status Update

纯粹只是证明我还没死透。

据说RK3568B2是RK3568缺货的时候推出来应急的玩意,厂商号称没啥大变化,然而当我买了新的Photonicat之后,使用RK3568的主板似乎真的凉快一点点,go figure。(缺省的CPU governor是换了,然而我之前用更conservative的governor都还是比这热)

AX的绝对传输速度比AC没有优势,但是带宽利用率和延时都好得多。

现在家里用的机器只剩下两款了:P50和Yoga gen 3。现在两台服务器都是P50,因为之前做接入和NAS的Yoga gen 1有一天过热到生活不能自理,只能放弃掉。

买了几支Arctic MX4回来,然后发现还是ptm7950好,于是买了更多的ptm7950屯着,现在动不动就有被制裁的风险,各种乱七八糟的东西还是屯点好……这些年真是把脑子都折腾坏了。

但是换导热材料其实不会改变Yoga gen 3的散热问题,因为那个散热器件是为15W的TDP设计的,持续功耗20W根本就是要丫狗命。原厂根本没有这样搞过,所以神乐跑分比市面上不少同款机器强点……

Micro PC的电池报销掉了一个,风扇里面堵满灰又吹了一下,现在只敢跑6W的TDP……

神乐也没好到哪儿去,主板在启动的时候居然会掉到0.9GHz的速度,怪不得启动比深月慢3倍,然后发现家里的备件来源里面就没几个好的主板,惨……看样子什么时候还得再买一个屯着。

现在连充电宝都屯……神经病,但是Thinkplus那款带方口输入的实在好用。

买了一个校色仪,终于很大程度上解决了两个机器之间屏幕颜色不对的问题,但是D65的中性灰真是黄到没法看,于是直接上9300K算了……

CMO终于出了官方64bit build,神通力的限制算是完全解除了BWAHAHAHAHAHA……然而CPU真的不够快,跑一圈差不多要一个星期。

只有在所谓“医师节”的时候才意识到自己干的根本不是正当行业,不然为啥都不让赚钱233

其实真的很好奇饭否现在还有人看不233

Twitter现在这玩意基本上也快完蛋了,现在已经不是文字内容的时代了么。RSS也似乎离死不远,各种围墙花园将会是以后的常态了吧。倒是挺互联网主权的。

#14159–It’s a mad mad mad mad mobile network world.

本来想拍点照片显示一下现在的设备有多混账的,不过懒得做了。

我之前买了一堆gl.inet的设备的原因就是我之前买过gl.inet的4G路由器(准确地说,E750),然而到了今年3月的某个时候,我发现它的某个部分好像有点奇怪的隆起……

不是吧……

拆开一看,证实了我最大的恐惧:电池变成了一个小抱枕。

立即拆掉、扔掉。我可不想带着一个炸弹满街跑,虽然包里有好几个潜在的炸弹。

然后就是一段动荡不安的时期。E750虽然拆了电池但是插上外接电源还算能用,然而在已经塞满东西的包里面真的不容易给它和电池再安排空间。这玩意用的电池的尺寸和接线还有点诡异,在掏包上看了半天我都找不到合适的,最后只能去问原厂。

然后原厂给我的答复是:“如果真的不行乃可以寄回来安排返厂哈。”

好吧,我绝望了……上回AX1800的风波已经折腾得我够惨了,这事情就算了吧……真的很想说以后不买他们家的东西了。

于是踏上了寻找另一个openwrt 4G路由器的旅程。gl.inet自己早就停产了E750,但是前一代的XE300还在卖,我抽屉里还有一个算是能用的。XE300和E750最重要的区别就在于E750用SoC的PCIe总线额外拓展了一个5GHz WiFi卡,考虑到我之前2.4GHz的孱弱表现,我还是希望在外面继续用5GHz的。

抽屉里倒是有个以前买的华为4G路由器,支持5GHz(n或者ac),然而那个机器最大的问题就是不能指定DHCP发配给各个设备的地址。如果各家的路由器有这个功能的话我还折腾openwrt干啥……

看了一下用rpi CM4的方案,没看到自带电池充电线路的,没有看到有两个m2接口的(需要一个卡做wifi ap界面,cm4自己的界面用来连接内网),也没有看到体积不大的……于是算了。

别家的ARM软路由方案也差不多,所以全部算了……

然后就只剩下photonicat了,一个奇怪的名字。这玩意基本上就是一块RK3568开发板,正反面各有一个m2接口,而且有原厂提供的电池和第二网卡支持。作为跑openwrt的4G热点来说这个CPU绝对是过剩到不行(我还买了4G RAM+64G Flash的版本),不过我还有别的选择么……

用了一天就后悔了:这玩意好热!之前我的rpi 4在包里散热不良的时候外壳表面温度也还没达到70度那么扯淡,但是这个几乎全金属外壳的东西的温度几乎和CPU core温度同步,也就是说,接近80度……

喵的我还同时买了一堆备件,在途TAT

于是又被折腾了一阵。关掉一堆后台服务,调低CPU频率,等等,只能算是稍微地减少了发热的量,每次从包里拿出来我都想要一把火钳。伴随疯狂的发热量,它的电池寿命也短得可怜:厂商号称带4G和11ax能运转大概4个小时,然而我从来就没有让这玩意成功在电池上运转超过2个小时。

这个玩意成功运转了一两个星期,至少看起来是这样。虽然随身LAN有11ax连接速度的感觉是不错,然而4G不知道为何总是有点不很稳定。

接着我去了几天HK,这玩意几乎完全不能用了……4G不怎么稳定,WiFi桥接更是超级不稳定。那个时候我已经被这玩意折腾得都快没脾气了,于是在网上找了一下在HK有什么能用的4G路由器可买。

在这个谁都喜欢用手机的年代市场上真的没有太多选择……有货的几乎就只有netgear的nighthawk m5,一个比很多手机都贵(4500 HKD!我可以买一个应该还算可以的二手iphone了都)的神经病东西。虽然号称是第一款带5G(Generation,不是GHz)的11ax随身路由器,不过这个5G基本上在大陆没法用,因为大陆为了能多创造GDP早就拒绝了4G和5G共用部分设备(所谓NSA)的模式,而这个机器国外的版本不支持独立组网(SA)的5G……

国内的运营商也不支持LTE Cat 22的速率,所以比5G还快的空口速率在大陆根本毫无用处。

然而它至少稳定!也许……

拿到的货有些问题,但是至少即插即用,5GHz 11ax的表现还算凑合。但是没有自定义的dns/dhcp设置还是让我很不爽。

dns/dhcp的执念是因为我还有一个gpd micropc在做口袋服务器,提供连接回家的gateway以及一些基础服务(比如文件共享和dead drop)。以前用的所有随身路由器都不能可靠地用机器的名字来访问它:Windows的情况好一点,毕竟它也跑Windows,SMB Name Resolution还算勉强能用,但Linux/Android基本上就是hit or miss。有了openwrt和dnsmasq支持之后整个随身内网的使用就和家里同样运行openwrt的表现差不多一样可靠了。

然而它比华为好的地方是即使在提供5GHz WLAN的时候还能正确连接2.4GHz的网络提供桥接。看来它也是按频段分开了两个WiFi空口。

然而我很快就找到了photonicat不好用的原因:mwan3,用来管理多个WAN链接的东西,开发商不知怎么回事搞坏了……完全禁用了以后竟然就稳定了很多。

于是回到大陆不久我就将m5扔到了一边,想着什么时候把这个碍眼的失败塞进垃圾桶里一了百了。

电源的问题不久也想到办法解决了:反正都是usb 5v供电,micropc上不是有一堆闲置的usb口咩。用blutack将机器固定在micropc的顶盖上,再用usb线连接两者,搞定。micropc常年插在一个thinkplus powerbank上,所以它自己的电力不是很成问题。

这样过了一个4月,期间偶尔换一下用几天E750——反正吊着个电源,没有电池也没关系——然而单天线AC的LAN速度实在有点不能忍(ax的新调制模式使频谱利用效率高了一些,lan速度和延时改善很大),但是photonicat的发热量真的离谱……

May day放假的时候在家无聊我又找了一下关于打开m5的linux telnet入口的信息,居然还让我找到了一个在linux下运行的东西能够完成这个事情(https://noteblok.net/2022/06/25/gaining-root-access-on-netgear-nighthawk-mobile-5g-lte-routers/),更重要的是,m5自己也在用dnsmasq……

其他的东西都可以洗洗睡了,人家netgear的东西虽然有些病态但是在发热量和性能上的平衡都比国产货好得多啊……

And so be it,估计在国内关停4G之前这个东西应该还能应付好一阵了……

#14082 – 电磁兼容性

首先:去它喵的英文233

之前一篇我说过我换了一个AX1800做自己LAN里的中央router,然后继续用原来的SF1200做AP。然而802.11ax配合AX210的表现实在太亮眼,于是决定将家里所有的AP都换成AX1800,即使家里其他人现在都还在AC。

于是一口气买了4个这个评价相当糟糕的产品…

一开始测试的时候相当不错,但是发现2.4GHz热点的信号极端不稳定。之前我的wlan一直在2.4GHz上运作,速度是比较糟糕(11n大概跑出11b的速度),但至少还能连上,这回连连接都连不上了。

5.7GHz倒是差不多,而且速度还可以,大概相当于4根孤零零地挂在水晶头上的网线的速度(25Mbps上下)…我没办法要求了。

然而没有2.4GHz还是有点问题。查了一下没什么解,这个机器甚至没有什么人关心,不过在寻找解决方法的过程中无意中看到有人介绍USB 3.0工作的时候对2.4GHz有严重影响…

啥?有USB 3.0的时候都快11n了吧难道设计的人就没想过的么…

于是我明白为啥我以前用思科的蘑菇头都没啥速度了,虽然那个东西的最大发射功率并不怎样。

但是AX1800的敏感性也好像有点太高了,真的连普通的tplink的水平都不如…

接着就是换远端的Repeater。既然5.7GHz可用,我的计划是全部用5.7GHz做远端链接,只留AP上的2.4GHz来兼容一些老设备。然而Repeater使用5.7GHz client之后就不能提供稳定的5.7GHz AP了…

原厂的固件竟然连这个基本的功能都没做好…

最后整了一个半官方的5.4内核固件,看看换了个驱动能不能改善…

确实有改善,问题是MAC地址丢了…

现在的WiFi真的很神奇,我的Note 10+也是这样,现在的MAC地址竟然是一个配置文件提供的,如果这个文件丢掉就会随机给一个MAC…

是每次连接都有新的MAC…

于是又找了一下,终于在/lib/firmware里面找到了那个二进制文件(还是先刷的官方固件然后提取出来再塞进去),总算把设备原来的MAC地址恢复了…

买了4个,自己用了两个,另外两个是给家里人做覆盖的。11ax做桥接主干确实比11ac/n快。

问题是原来用官方固件连2.4GHz的Repeater AP都不稳定…

所以还得用那个奇怪的固件…

现在暂时运行比较稳定了,就是院子里可能有点问题,先运行一阵吧,实在不行再扒一个SF1200出来覆盖一下,毕竟还有5个…


早段时间还查过5GHz WiFi移动路由器在日本的使用问题…

然后发现日本的电波管制法律可真严格…

然后发现网上的信息非常混乱,最后发现其实5.2GHz基本上还算是能用的…

问题是…国外的没有日本技术标定的设备根本就不能入境使用23333

这个世界可真厉害。

#14063–Thinking about changing the primary language of this blog.

Just discovered that Google Translate did a good job in translating this blog…

I do want to increase my existence in the broader sense of “internet”, not just the close circle of Simplified Chinese users. It feels more restricted when I write something that I know only a handful of readers would notice and understand, and even more important, a handful of the former mentioned handful who could access these things freely.

The change may not proceed as my English writing is a total mess. And no matter what I do, I’m of a dying breed which is still living in the pre-2.0 days of Geocities and personal sites.

Resistance is futile. Especially you are bad at it.

#14049 – 网中神(kami caught in the net)

covid康复了应该干啥?

把全家的主干网络换掉!(死)

我家的网络本来是这样的:

Drawing1

为什么会有两个WAN?历史遗留问题:我家是城乡结合部,以前这片只有电信ADSL,后来有移动FTTH了以后就立马整了一个,加了一个TPLink的双WAN路由器做了双WAN分割(我不是很喜欢路由器上面做负载均衡,因为发现设置非常难做)。最后电信也提供FTTH了(搞活动把老娘骗了去),于是就形成了现在的双WAN局面。

原来出口路由和第二层NAT(家里其他人用)的WVR300是一样的,后来死掉一台(坏掉一个eth口好像)以后换了台电信定制的国产思科垃圾,转发性能几乎翻倍,真是不知从何说起。

家里的面积和楼层都偏多(死),因此单一WiFi热点覆盖是不可能的,之前用2.4GHz AP+Client+AP桥接的效果并不好,发现了SF1200这种200块钱不到的双频设备以后转用了5GHz Backbone+2.4GHz Cover的设置。(在这之前用过思科的fat AP蘑菇头,覆盖神奇糟糕……)

我自己的第二层NAT是一台垃圾成色的石头RT-N16。之前我的NAT是同一家的WL-500GP,热点也是他们家的RT-N12,不过N12的ddwrt一直工作不稳定,后来换思科蘑菇头AP不久就换了N16将自己的主干升级到GBE。

那台N16真的是垃圾成色,主板的腐蚀斑相当广大……

这样的配置一直用到了上个星期的某天。然后我做了一件很愚蠢的事情:清洁。

就是拖把捅了一下放这些乱七八糟东西的下方而已!

然后就不知道哪根线松了,整个网络忽然变得完全不能忍受,我的LAN内部丢包神奇严重,WiFi生活不能自理,就连几乎不用维护的另外一套NAT系统和主干NAT好像都在发瘟……

好吧,大概是网线松了,我的网线都是之前20年从不同渠道收集回来的各种乱七八糟的玩意,用在GBE上能跑出速度本身就是奇迹了。买了新网线,全部换了一下,有线和另外一个二层NAT基本上稳定了,但是我这边的WiFi不知道为啥还是不堪入目……

结果我做了对网络基础设施能做的最蠢的事情:刷新版固件。gl.inet的固件说实话并不算很糟糕,但是升级固件真的不能偷懒保存已有的设置记录……又折腾了好些天,恢复了两次出厂设置,才把SF1200的3.203升级到3.215,顺便成功配置好了之前3.203上完全不能正常运行的SNMP服务,可以在服务器上统一用PRTG记录这些设备的运行情况。

我的5GHz远端的Client+AP在升级之后一直有2.4GHz Cover不能连接到LAN的问题,后来发现是自己傻X在整理interface的时候将sta-bridge(类似这样的名字)干掉了,所以5GHz和2.4GHz之间的桥接就废了……

在外面跑来跑去的时候用的GL-E750也升级到3.215,自己修改的WiFi开关和脚本也是生活不能自理,后来修改了一下好像好了一点点,不过直到今天感觉还是不如以前……


搞完一轮以后,我还是看啥啥不顺眼……

首先N16的网口真的很flaky,稍微碰一下就松了。毕竟是腐蚀成那样的东西……

此外就是我家的出口其实早就被运营商“升级”到了200-300Mbits/s的带宽,从出口到第一层NAT的线都是GBE,但是第一层到第二层之间只有100M的链接,好像还真有点浪费,家里的人也经常嚷嚷网不好(虽然我是觉得国内什么网都不好使)……

于是决定下血本全面更新。

本来东西是一起下单买的,但是最近的物流真的非常神奇,所以我先收到了自己那层的NAT的更新设备:GL-AX1800。

WiFi 6和我没关系,因为我放这个东西的地方不适合提供任何信号覆盖,我原来的WiFi覆盖也尚算可用。和N16相比的话,这机器的转发性能还算可以,软件稳定性也比之前刷的openwrt好一点。

安稳了两天,因为不可抗力(快递公司说的)延误了很多天绕了小半个珠三角才来的TL-R479GP-AC也来了。本来真的不是很想用TPLink,但是多WAN解决方案里最省心的就是这玩意(我没空折腾软路由和各种软路由系统)……

将原来的设备参数转过去(LAN IP设置,带宽限制,诸如此类),一台放在主干,一台放在家里人用的NAT,几乎是即插即用。有线测速也没有让我失望,全GBE的主干和分NAT的带宽全出来了。家里人那边有一个远端AP不好用,索性拿掉了,似乎对覆盖影响也不大。

现在的网络拓扑就成了这样:

Drawing2

然后我的真正的麻烦才开始……


我的一对Thinkpad X1 Yoga Gen 3之前手贱换了烟条的AX201,因为我要比水果牛逼(死),而且有消息说AX201在信号上的表现比8260(之前用的WiFi网卡)要好很多,于是买了一对换了。

然而一直都跑不出啥速度,而且我的笔记本在床上用的时候有非常神奇的问题:方向和网速有关……机器竖起来放在某个墙角的方向的话网速会变得极端缓慢。无线宽带测速的结果也非常亮眼……地慢。

发现iperf3是一个非常简单地就能用起来的工具之后,我在AX1800以及第一个SF1200上装了iperf3服务端,然后用笔记本测速,居然连802.11a/g的速度都跑不出来……

然后换回去之前的8260,主观上似乎有些进步,但是iperf3的测速还是在同一个水平上,于是又换回去AX201……

结果这个星期一上班的时候无聊用上班的电脑测一下到随身路由器的WiFi速度,发现是我平时整天用的机器的2倍……

#@!%$%#@……

左思右想,只能想到一个问题了:这个机器的辅助天线的插头插进去的时候就感觉不大对劲,而且当初撕掉4G天线的时候好像伤到了铜箔……

换!……幸好家里有备件,但是换A壳(直接换天线其实和换A壳工作量差不多,还要设法从外壳上完整分离那个脆弱的铜箔天线)花了我接近1.5个小时。

然后好像真的好了一些些,至少能跑出接近11g的速度了……

11g的速度,20年前的水准……算了。


教训?

1.千万不要手贱升级固件!!!!!!!!

2.WiFi天线的质量很重要。

3.网线一定要插紧……

下次更新大概是2030年前后,为了解决2038问题。

假设还有2038甚至2030……


关于GL-E750的硬件开关改成5GHz WiFi开关的办法(2.4GHz也能用,修改一下wifidevice的interface名称):

1.修改/usr/bin/switchaction:(自己找对应的地方修改,我不认识怎么写代码)

toggle_tor(){
         local action=$1
         if [ “$action” = “OFF” ];then
                 uci set wireless.@wifi-device[0].disabled=1
                 uci set wireless.@wifi-iface[0].disabled=1
         else
                 uci set wireless.@wifi-device[0].disabled=0
                 uci set wireless.@wifi-iface[0].disabled=0
         fi
         uci commit wireless
         wifi
}

在下方toggle_tor ON的地方修改代码如下:
“tor”)
         device=$(uci -q get wireless.@wifi-device[0].disabled)
         ap=$(uci -q get wireless.@wifi-iface[0].disabled)
         if [ “$device” = “1” -o “$ap” = “1” ]; then
                 toggle_tor ON
         fi
;;

在下方toggle_tor OFF的地方修改代码如下:

“tor”)
         device=$(uci -q get wireless.@wifi-device[0].disabled)
         ap=$(uci -q get wireless.@wifi-iface[0].disabled)
         if [ “$device” = “0” -o “$ap” = “0” ]; then
                 toggle_tor OFF
         fi
;;

3.215版本的代码会定期检查开关状态而且重新执行这部分代码,所以可以看到其他条目里的代码都有check_vpn这一项,就是为了不用重复执行启用或取消VPN的功能导致网络中断。如果不加上检测wifi是否被停用的部分,wifi的信号会很不稳定。

2.(可选)修改/usr/bin/switch_queue:

“tor”)
         e750-mcu ”                Turning WiFi ON”
;;

“tor”)
         e750-mcu ”                Turning WiFi OFF”
;;
“*”)

3.在gl.inet的定制界面里将侧方开关的功能修改为启用/停用tor。

4.最好重启。