内容提要
作者因宿舍智能设备多、校园网限5台设备且需CAS认证,用OpenWrt路由器无线中继校园WiFi并建局域网。遇到DNS解析和频繁掉线问题后,编写Shell脚本自动登录:抓取execution参数,用curl提交账号密码,再配置CronTab定时运行,实现自动认证,从而远程控制空调、台灯等设备。
延伸解读
校园网限制与智能设备接入难题
南方科技大学校园网对学生账户有5台设备限制,且所有设备需通过CAS认证。这导致没有交互界面的智能设备(如智能空调控制器、台灯)无法直接连接校园WiFi。作者通过OpenWrt路由器无线中继校园WiFi并建立局域网,让所有设备共享路由器的认证,从而绕过限制。这一方案对拥有多台智能设备的学生具有参考价值,但需注意设备数量仍受账户限制,且路由器本身也占用一个设备名额。
OpenWrt路由器的DNS配置关键点
在无线中继校园WiFi后,路由器可能无法解析校内域名(如cas.sustech.edu.cn),导致无法访问认证页面和校内服务。原因是OpenWrt默认开启DNS重绑定保护,忽略了内网DNS解析。解决方法是在路由器DNS设置中取消“rebind protection”。这一步骤对于使用OpenWrt接入校园网的用户至关重要,否则即使网络连通,也无法正常使用校内资源。
Shell脚本实现自动登录的技术细节
脚本通过curl获取CAS登录页面,用grep和参数扩展提取一次性的execution参数,再提交用户名、密码和execution完成认证。由于路由器存储和性能有限,作者放弃Python方案,选择轻量的Shell脚本。脚本需配合CronTab定时运行,但配置时需注意:CronTab文件末尾必须有换行符,脚本权限建议设为777,且首行指定解释器并source环境变量。这些细节是脚本稳定运行的关键。
设备频繁掉线的原因与启示
作者发现路由器被踢下线是因为手机在移动过程中频繁切换2.4GHz和5GHz频段,CAS将同一手机识别为两个设备,导致超出5台限制。这提示在校园网多频段环境下,设备可能因频段切换被误判,增加账户设备数。使用自动登录脚本定期重连可以缓解此问题,但根本解决需优化网络设置或减少设备切换。
Q&A
为什么需要编写自动登录南方科技大学校园网的脚本?
因为校园网限制每个账号最多5台设备,且所有设备连接WiFi都需要CAS认证。智能设备如空调、台灯没有交互界面,无法正常登录,导致频繁掉线。
如何用OpenWrt路由器中继校园WiFi并建立局域网?
将路由器的A网卡设置为Client模式无线连接校园WiFi,B网卡设置为AP模式创建局域网,所有设备通过路由器的A网卡认证信息上网。
在配置过程中遇到了哪些主要问题?
主要问题包括:无法解析内网DNS导致不能访问CAS登录页,需取消路由器的“重绑定保护”;以及因设备在2.4GHz和5GHz间切换被CAS误判为两台设备而超限掉线。
Shell脚本如何实现自动登录校园网?
脚本先用curl获取登录页面,用grep和字符串操作提取execution参数,再用curl提交用户名、密码和execution完成认证。
如何配置CronTab让脚本定时运行?
在CronTab中添加定时任务,注意末尾必须有换行符,脚本权限设为777,首行添加#!/usr/bin/sh,并source配置文件确保环境正确。
自动登录后可以实现哪些智能控制?
可以远程控制宿舍空调、台灯等设备,例如设置空调凌晨2点升至27°C、3点自动关闭,从而节省电费。