绕过校园网多设备检测

Reference

引入

近年来随着生育潮等问题, 加上多数大学本科教育批款少、本科生不受重视等问题, 大学中从基础设施到基本教育都是叫人一言难尽。

具体原因我不清楚, 但事实是学校的网络基础设施对学生的限制特别多, 包括历史遗留问题和有意为之的“设障”。

本文针对学校基于 Dr.COM 对多设备进行限制的问题。

方案

以下方案都是 GameNoTitle 告诉我的, 他进行了大量的探索, 并无私地将这些分享出来, 让我的网络环境跟上一层楼。

UA 修改

Dr.COM 本质上是通过 UA 对多设备进行检测(识别 UA 中的设备信息)。

所以我们可以通过修改 HTTP 报文中的 UA 信息, 达到绕过多设备检测的目的。

具体的方案有:

  • ua2f 这个是使用 c 语言写的, 由于种种原因,目前为止还没有支持多线程, 考虑到性能问题,我没有使用这个方案。 如果要使用这个方案可能需要自己编译。
  • ua3f 这个是基于 Go 语言的, Go 是出了名的网络相关的基础设施, 我用了一下, 还是很好用的,具体来说,没有什么问题。

特殊方案

不知道是某些学校自己设置的问题还是 Dr.COM 的问题; 也许根本不是问题, login 之后前几秒会有一个 mac <-> UA 白名单绑定的操作; 我个人猜测是由于某些程序自己配有相应的 UA (并且这些软件一般一直在发送请求), 如果严格限制 UA 会导致很多问题, 所以在最开始的一段时间就有了如此操作。

之后有时间我再具体检测一下。

具体来讲,其实只要修改 mac 地址, 重新 login 即可。

有关用到的一些脚本, 开源了,建议配合 direnv 使用。 (Fork 自 GameNoTitle,感谢 GameNoTitle 的无私奉献和思路分享!)

xihale/WrtScript
GameNoTitle/WrtScript