首先参照OpenWRT Wiki - Lenovo Y1 v1找到刷固件教程:

  1. 下载Lenovo y1s 的固件备用
  2. 断开电源,等待一段时间,插入电源同时快速按下重置按钮,如果面板双闪,则说明进入了恢复模式
  3. 电脑连接到四个 LAN 口中任意一个,配置静态地址在 192.168.1.0/24 网段
  4. 打开 192.168.1.1 可以看到刷固件的页面
  5. 上传固件,等待路由器重启
  6. 配置 IP 地址为 DHCP 模式,打开 192.168.1.1 进行配置

然后就是常规的密码设置,opkg 源设置为 tuna 的源,配置 ssh 和 公钥。

接下来,我们为了使用学校的 SLAAC ,采用 ebtables 直接把学校的 IPv6 bridge 进来,而 IPv4 由于准入系统,需要 NAT 。

参考Bridge IPv6 connections to WAN,下载v6brouter_openwrt.sh到某个地方,然后修改一下里面的一些参数:

# For Lenovo y1s
WAN_DEV=eth0.2
BRIDGE=br-lan
# the rest remain unchanged

然后跑起来之后,自己的电脑可以成功拿到原生的 IPv6 地址了,不需要用难用的 NAT66 技术。

下一步是采用z4yx/GoAuthing

$ go get -u -v github.com/z4yx/GoAuthing
$ cd $GOPATH/src/github.com/z4yx/GoAuthing/cli
$ env GOOS=linux GOARCH=mipsle GOMIPS=softfloat go build main.go
$ mipsel-linux-gnu-strip main
$ scp main root@192.168.1.1:~/GoAuthing
$ ssh root@192.168.1.1
$ opkg install ca-certificates
$ ./GoAuthing

这里参考了解决GO语言编译程序在openwrt(mipsle架构)上运行提示Illegal instruction问题,配置了 GOMIPS 环境变量。为了访问 HTTPS 网站,参考了OpenWRT Wiki - SSL and Certificates in wget。有毒的是,这个环境变量,在 macOS 上不能正常工作,而在 Linux 机子上是没有问题的。

然后就可以成功地跑起来 GoAuthing ,解决了上校园网认证的问题。

感谢宇翔编写的 GoAuthing 小工具。