:零基础编写自动重连脚本,彻底告别断流!)
南农校园网生存指南零基础编写自动重连脚本彻底告别断流25 年来到南农滨江校区开始读博生活。作为一个曾经折腾过网络工程的人发现南农校园网是一个大子网校内设备不限制互联随即决定开始折腾。首先不得不吐槽一下这里的校园网收费模式按流量收费且套餐必须提前一个月选定。当月流量超标只能买 5 元 15G 的流量包我刚来的第一个月随便下几个数据集就花了 40 多元网费。而且办公区域流量同样收费只有夜间闲时才免流。 其次网络存在严格的设备登录数量限制。由于是 Web 认证无法直接使用路由器 PPPoE 拨号只能在 LAN 口下由电脑拨号再共享。最难受的是登录后每隔一段时间需要重新认证一旦设备超限还会被踢下线且不会通过 MAC 记录自动重连。为了避免办公室电脑断联影响远程连接我决定先解决“校园网自动登录”的问题让电脑保持 24 小时在线。核心思路利用 GET 请求实现无感登录很多校园网如 Dr.COM 认证系统在网页端认证时本质上是向认证服务器发送了一个带有账号密码的 HTTP 请求。经查询抓包发现南农校园网的登录请求恰好是明文 GET 请求。这就好办了我们只需要通过浏览器开发者工具把这段请求链接抄下来写个脚本定时访问它就能实现“静默登录”。有些登录节点哪怕存在前端加密直接填明文参数通常也能直接放行。步骤一抓取你的专属登录链接我们要通过浏览器的开发者工具揪出那个包含你账号密码的真实登录 URL。准备环境保持设备连接在校园网网线或 Wi-Fi 均可先不要登录。打开后台在浏览器输入校园网的管理页 IP打开弹出的登录界面。输入信息填入你的账号和密码注意先别点登录。开启抓包按下F12打开浏览器开发者工具切换到“网络”Network选项卡。保留日志勾选“保留日志”Preserve log防止页面跳转后请求记录被清空。点击登录在网页上点击“登录”按钮。寻找链接登录成功后在开发者工具的列表中找到名为login的关键网络请求查看它的Request URL。你抓到的链接大概长这样为了安全敏感信息已打码http://xxx.xxx.xxx.xxx:801/eportal/portal/login?callbackdr1004login_method1user_account%2C0%2C[你的学号]user_password[你的密码]wlan_user_ip[你的IP]wlan_user_ipv6wlan_user_mac000000000000jsVersion4.Xv8517langzh 链接参数简单解析xxx.xxx.xxx.xxx:801认证服务器的内网 IP 及分配给 Web 认证的 801 端口。user_account/user_password你的账号与密码。wlan_user_ip你当前获取到的局域网 IP有时会经过简单的 Base64 编码。v8517时间戳或随机数用于防止浏览器缓存确保每次请求都有效。callbackdr1004JSONP 回调函数名用于处理跨域请求。拿到链接后你可以手动注销校园网然后把这串 URL 直接粘贴到浏览器地址栏回车。如果页面返回成功的 JSON 数据且恢复了外网访问说明抓取成功步骤二编写 Windows 自动重连脚本 (.bat)为了解决挂机下载或跑代码时突然断网的痛点我写了一个简单的 Windows 批处理脚本。它的逻辑是每隔一段时间ping一下百度如果网络不通就自动请求刚才抓到的登录链接进行重连。新建一个文本文件命名为check_baidu.bat右键使用记事本打开填入以下代码并修改相应的配置echo off :: 设置测试网址 set CHECK_URLwww.baidu.com :: 设置校园网 GET 登录链接请替换为你自己的链接 :: ⚠️ 踩坑警告URL 中的 % 必须改成 %% 转义例如 %2C 要写成 %%2C set FAIL_URLhttp://xxx.xxx.xxx.xxx:801/eportal/portal/login?callbackdr1004login_method1user_account%%2C0%%2C[你的学号]user_password[你的密码]wlan_user_ip[你的IP]wlan_user_mac000000000000 echo [%date% %time%] 开始检测网络连接状态... ping -n 2 %CHECK_URL% nul if errorlevel 1 ( echo [%date% %time%] 网络断开正在尝试重新登录... :: 使用 curl 发送静默请求 (Windows 10/11 均自带 curl) curl -s %FAIL_URL% nul echo [%date% %time%] 登录请求已发送。 ) else ( echo [%date% %time%] 网络连接正常无需操作。 )⚠️ 核心踩坑点必看在 Windows 批处理.bat文件中%是一个用于声明变量的特殊字符。如果你的抓包 URL 中包含转义字符比如学号前面的%2C你必须使用两个百分号%%来进行转义即写成%%2C否则脚本运行会直接闪退报错步骤三配置任务计划程序真正无人值守脚本写好后我们需要借助 Windows 自带的任务计划程序让它在后台定时静默运行每小时或每 10 分钟检查一次。按下Win S搜索并打开任务计划程序。在右侧操作栏点击创建基本任务...。名称填入“校园网自动重连”。触发器选择“每天”在下一步的高级设置中勾选重复任务间隔设置为10 分钟或1 小时持续时间选择“无限期”。操作选择“启动程序”。程序或脚本点击浏览选中你刚才编写的check_baidu.bat文件。完成创建后在任务列表中双击该任务在“常规”选项卡中勾选“不管用户是否登录都要运行”和“使用最高权限运行”。这样设置后脚本就会在系统后台静默运行彻底告别弹出的黑框且随时为你保驾护航。⚠️ 安全与注意事项补充明文风险使用 GET 方式登录会将你的账号和密码以明文形式直接写在.bat文件中。如果你使用的是公共电脑或者电脑经常借给他人请慎用此方法或妥善隐藏该脚本文件以防密码泄露。适用范围限制GET 方式是最简单粗暴的登录方案。但如果你学校的接口升级强制使用POST方式账号密码在请求体中不在 URL 里这个基础.bat脚本就无法直接适用了。届时需要改用 Python利用requests库或 PowerShell 来构造稍微复杂的请求。搞定了校园网 24 小时不断线只是我们实现‘科研自由’的第一步。下一篇文章我将为大家解锁每位研究生的绝对刚需——如何随时随地、流畅地远程访问你的办公室电脑。让你无论在宿舍还是出差都能随时调动实验室的算力敬请期待