背景

由于本人有要做远程办公的打算,需要依赖 IPV6 从外网访问自己的电脑和其他设备,而原先的路由器没有提供 IPV6 防火墙的开关,并且也不支持 SSH 连接,拥有一台功能强大,并且高度自定义化的路由器便成为了刚需。

在朋友的介绍下,看上了一台曾经被称为是“弱电箱神器”的路由器,是来自 Ubiquiti 家的 ER-X,全千兆口的有线路由器。虽然已经是有点年代的东西了,但体积小巧,功耗发热也控制的很不错,千兆网口带我寝室的 500M 宽带更是绰绰有余了,于是在海鲜市场上花费不到 200R 入手。

到手后,第一时间就是先熟悉配置界面,自带的系统是 EdgeOS ,我这台被卖家升级到了最新的 Ver.2.09,内置了各种扩展组件,功能是十分强大,但全英文的树状式配置界面确实有点让人一时间难以上手。在什么值得买上跟着教程勉强配置好了基础的上网功能,之后各种问题就接二连三的出现个不停了……


EdgeOS 下面临的问题与解决情况

配置 IPV6 连接

已解决

路由器能拿到 IPV6 地址,而局域网下其他设备都拿不到的问题

  • CSDN 上有不少 ER-X 的 IPV6 配置教程,跟着走了一遍以后发现路由器拿到了 IPV6 地址,而路由器下的设备都没办法拿到,经过一步步的试错最后才发现,几个教程中给的 prefix length 参数不是 /64/60 就是 /56,然而我们学校的网络要把它改成 /62 后才能正常给局域网下的所有设备都下发 IPV6 地址,说起来也挺搞笑的。

未解决

安卓设备和电脑的 IPV6 地址有时会丢失,重连后也不一定能重新拿到的问题

  • 起初,在配置完 IPV6 后,安卓设备无法拿到 IPV6 地址,而其他的设备都正常。参照 CSDN 上的几篇文献,似乎安卓设备默认只支持无状态的 IPV6 连接,而不支持有状态,在启用 RA (Router Advertisement) 后,将 managed-flag 参数设置为 falseother-config-flag 参数设置为 true 的情况下,路由器才会自动启用 DHCPv6 无状态自动配置功能,教程中给出的两个参数均为 false
  • 在更改了参数后,安卓设备能够正常的获取到 IPV6 地址了,但是在经过一段时间后出现了 IPV6 地址丢失的情况,具体表现为在 Wi-Fi 管理界面能够看到该网络分配到的 IPV6 地址,但设备无法使用,在这种情况下,一部分 IPV6 优先访问的网络内容将会出现异常,QQ,微信之类的聊天图片加载速度变得非常慢,一部分网站的访问速度也变得很慢,而经过测试,IPV6 丢失基本上都出现在断开 Wi-Fi 重连后,这意味着,只要走出寝室,断开了 Wi-Fi,再回到寝室重连,网络就变得异常了,这确实对我造成了很严重的困扰。并且通过重新开关设备的 Wi-Fi 或者重启设备都无法得到解决,只有重启路由器,才能暂时解决这个问题,但我有没有办法不带着手机出门……
  • 在查阅了很多文献后,也没有发现和我出现一样问题的人,就跟上文的 /62 一样,或许是我们学校的网络环境比较特殊导致的吧。带着问题咨询了同样使用 ER-X 的朋友后,他那边也没有出现过这种问题。

考虑到安卓手机并不是我的常用设备,且一部分场景下使用手机流量也未尝不可,于是便妥协用了一个多学期。后面在查阅资料的时候偶然发现这台路由器是可以刷成 OpenWrt 的,在 OpenWrt 下,一部分功能的配置就变得简单易懂了,并且拥有强大的扩展性,还可以安装魔法工具来提升上网体验。

刷入 OpenWrt

刷入前需要知晓的内容

曾听说这台设备在刷入之后没办法正常开启硬件 NAT 转发,但经过查询后找到油管小哥演示的 22.03.2 版本可以正常开启硬件加速,并且所有系统组件工作正常,经过我的测试也确实工作正常,并且系统稳定性还算不错。

想要刷入最新版的可以自行尝试,我这边在刷入之后出现了一些小问题并迅速无损回退了,另外,最新版本的稳定性大概也算不上很好,推荐还是用 22.03.2 版本。

准备材料

请先将系统更新至最新的 2.0.09 版本,再根据以下操作进行,更新使用下面的链接。

  1. ER-X 原厂固件 : 点击下载 选择最新版本 2.0.09 ,备用。
  2. ER-X 恢复用固件 : 地址同上,选择 1.10.10 版本下载,用于恢复原厂。
  3. OpenWrt 固件 : 点击下载 选择 22.03.2 版本,下载以 sysupgrade 结尾的固件,格式为 .bin
  4. 过渡固件 : 点击下载 (可能需要使用魔法) 此为 19.07.2 版本的 OpenWrt 固件,以 factory 结尾的出厂版本,格式为 .tar ,由于无法一步从原厂固件直接刷入 OpenWrt 固件,所以需要先刷入过渡的固件,再在基础上用升级固件升级到需要的版本。
  5. PuTTY 用于 SSH 连接到路由器,输入需要的指令进行远程操作。
  6. WinSCP 用于向路由器传输所需的文件,刷机包和一部分刷入完成后需要安装的插件。

开始刷机

可以参考官方的教程,比较详细。