image-20210421174248252

由于各种各样的原因,总有的时候希望自己的主机在校园网里长期在线保持公网连接,以提供一些服务。但一方面校园网的 web 认证对 *nix 命令行很不友好。虽然在之前的文章里我提到过使用 curl 的方式从命令行登录。但如果闲置半小时左右没有数据包发出,连接会被自动踢掉。

另一方面还有可能发生流量用光了扣钱,钱扣完了被踢掉等情况,导致我们的内网主机不能稳定在线。也无法通过 ngrok 等内网穿透技术实现公网访问。

因此我搞了一个小程序,它可以每分钟检测一次登陆情况,如果未登陆外网则会从预定的账号列表中挑选可用账号自动登录。如果已经登录则会检测已使用流量是否超限,并自动更换下一个可用的账号。

如果不幸列表中的账号流量均超限了,还可以设置一个保底账号,无视流量限制而保持在线,虽然代价是可能扣很多钱。

每个月月初流量重置时,会自动重置账号列表。

还附带了 linux 和 windows 下的自启动脚本,直接放进 rc.local 或者 Windows StartUp 里就可以了。

内网挂服务的同学可以放心地挂机了。

Github 主页: https://github.com/SykieChen/BJUT_Always_Online

很惭愧,就做了一点微小的工作,谢谢大家。