软路由和 OpenWRT x64 2

首先是关于校园网认证的问题。一开始是想使用 sysuh3c 来进行拨号认证上网的,但是由于路由器的架构是 x64 所以原来的 ar71xx 的包不能直接用,得要自己重新交叉编译一个包。需要注意的是 OpenWRT 的工具链编译出来的包并不能在 LEDE 上直接跑,一定要用 LEDE 自己的工具链才行。本以为编译出来就万事大吉了,但是后来发现程序在一个关键的地方和工具链有不兼容的情况……看了一个星期也不知道该怎么解决,期间也联系过作者 zonyitoo,最后虽然是成功编译出来了但是并不能正常工作,遂放弃。

后来想想,反正这路由器性能这么好,用 Python 又怎样呢,于是就用了 yah3c,两分钟搞定。哦,那就这样吧。

至于 IPv6,目前还是个玄学问题。解决方案有很多种,我基本上都尝试过,但都不完美,容易断流。只要设置好了路由器的 wan6,那么路由器就可以连接上 IPv6 网络了,与后面的设置无关。局域网下的设备在大多数情况下可以获得 IPv6 地址,但是无法连接上 IPv6 网络。到现在为止使用了两种解决方案,其一是自带的 IPv6 相关服务,包括多种不同的配置方案;其二是使用 NDP,同样用了多种不同的配置方案。有少数几种可以使局域网设备短暂连接到 IPv6 网络,但都不能长期稳定使用。所以还是没有找到一个可以长期稳定使用的解决方法。

值得一提的是,利用固件内置的 Aria2 可以将路由器当做下载机,又因为路由器可以稳定连接 IPv6 网络,所以可以到一些 IPv6-only 的 PT 网站下载资源,下载速度可以达到物理极限。

软路由和 OpenWRT x64

寒假期间买了一款工控机,想要将它作为以后学校宿舍使用的主路由器,彻底解决一年多来性能、功能的各项短板。在淘宝上找了很久,最终只找到了现在使用的这款,既有 4 个千兆网口,又有 USB 3.0。各位留心一下也可以找到,裸机(不包括内存、硬盘、无线硬件)价格 700 多元。

之后自己为其添加了内存、mSATA 接口的 SSD 和 mini PCIe 接口的无线网卡。根据现有的使用体验,为软路由添加无线网络支持的意义不是很大。

硬件方面的优势是显而易见的。因为使用的是台式机的架构,所以如果你愿意,甚至可以给它安装桌面级的操作系统。那么由于是作为软路由使用,自然是安装 OpenWRT 最为方便使用。

我安装的是 KoolShare 发布的改进版 LEDE。 LEDE 是一个 OpenWRT 的分支版本。KoolShare 发布的这个版本包含了许多有用的插件,比如广告过滤、各种流量监控管控软件、文件分享、下载器和特殊插件等。安装好后只需要做少量配置即可开始使用。由于此固件基于 OpenWRT,而且是 x86-64 架构,所以大多数 OpenWRT 的插件可以直接拿来用,甚至某些 Linux 应用也可以不另外编译而直接在上面运行。

总之,性能强劲,扩展性好,居家旅行、杀人越货必备。一些具体的设置,比如交叉编译、认证上网、IPv6 等,以后再写文章。

OpenWRT 和校园网 IPv6

前不久中山大学东校区更换了 iNode 客户端的验证方式,部分宿舍的验证方式从异或校验变成了 MD5 校验。sysuh3c 的作者——听说是个已经毕业有些年的大牛校友——没几天就更新了,还有一位在校生大佬也贡献了代码。简直业界良心,膜拜之。

——2016年11月26日


这个学期开始由 SYSU 珠海校区搬迁到了广州大学城校区,上网验证的客户端也从原先的锐捷变成了 iNode(H3C)。原先所使用的锐捷客户端难以在无线路由器上实现拨号,只有淘宝上卖的基于水星洋垃圾的某 link 可以拨号,但是性能低下。于是就用 Mac mini 作为锐捷猫使用,性能虽然还不错,但对 IPv6 的支持很不好,一些局域网应用在这种网络结构下有时候表现不佳。

幸好 H3C 有多种基于 OpenWRT 的第三方拨号插件,比如 YaH3COH3Csysuh3c 等,其中前两者用 Python 实现,后者用 C/C++ 实现。实测前两者在较新版本的 OpenWRT 中稳定性不佳,因此最后采用的是 sysuh3c 来进行拨号认证。采用的路由器是网件 WNDR4300,固件版本是明月新春版,基于 OpenWRT Chaos Calmer 15.05.1 r49208。

首先前往 sysuh3c 的 OpenWRT branch,下载最新的 ar71xx ipk 文件,并 SCP 至路由器的 /root 目录。使用包管理器安装:

安装完毕就可以使用以下命令运行(SSH 或 WebShell):

用自己的 NetID 和密码替换上面的参数即可。还可将上述命令添加进开机启动项(系统—启动项—本地启动脚本)。

然后配置校园网下的 IPv6。

修改对应的配置项为:

保存后重启路由器,应能看到路由器 lan 口获得了与 wan、wan6 相同的 IPv6 地址,电脑等设备也获得了正确的以 2001 开头的 IPv6 地址。此时应该可以通过 IPv6 上网了。

如果在网络状态中显示 IPv4 有 Internet 访问权限而 IPv6 没有,请尝试手动重启 odhcpd 服务(系统—启动项)。

这里可以测试 IPv6 是否配置成功。

神奇的实训

这次就不打算放具体细节和源代码了,因为这部分貌似不需要我们自己做(如果要的话再说)。

所以怎么说好呢……总的来说,实训的前三天,是充实的,是辛苦的,是新鲜的。这三天最主要的事情就是对照老师给的图,自己在 Altium Designer 中将小车的红外探路这部分的原理图和线路板画出来,并且焊接好电子元件,在第三天验收。

继续阅读神奇的实训

关于 Mac mini 外接 USB 3.0 设备干扰蓝牙工作的问题

这两天遇到了一个令人倍感困扰的问题:我的 Mac mini 在外接 USB 3.0 移动硬盘的时候,会极大地影响蓝牙键鼠的工作,严重时甚至会导致蓝牙设备与 Mac 失去连接;直到断开移动硬盘和 Mac 的连接,蓝牙键鼠才能恢复正常工作。

经过各种尝试,最终确定造成干扰的就是移动硬盘,于是向 Apple 售后询问解决的方法。事实上 Apple 方面也没有什么特别好的解决方案,对方工程师回复我说从 2014 年底开始就陆陆续续有类似的反馈,并且给了我以下这篇文章参考:

启用了蓝牙的键盘和鼠标可能无法一直保持配对或连接状态,或者启用了蓝牙的耳机或扬声器中的音频可能会不连贯。如果某些外置 USB 3.0 设备与 Mac 太接近,则会发生此问题。

简言之,由于 USB 3.0 设备在数据传输时会在 2.4GHz 附近频段产生噪音,若干扰源恰好在 Wi-Fi 或蓝牙天线附近,则会对这一频段的无线传输造成干扰。

最简单的解决办法:

  • 使用高品质的外置设备;
  • 使用 USB 2.0 设备暂代;
  • 使用带屏蔽的延长线,将产生干扰的设备放在远离 Mac 的地方。

继续阅读关于 Mac mini 外接 USB 3.0 设备干扰蓝牙工作的问题