NetKeeper(校园网保活助手)是一个基于 Electron + Vue 3 + TypeScript + Vite 的 Windows 桌面应用,用于自动检测校园网连通状态,并在外网不可达时自动重新认证。
当前版本:0.3.0
当前版本已按安徽理工大学 Drcom 认证网关适配,支持通过账号、密码和认证出口完成校园网自动重连。软件已支持系统托盘、开机自启动、本地配置保存、Windows 安装包打包,以及在软件内部尽量绕过系统代理进行直连检测和认证。
- 校园网账号、密码、认证出口配置
- 教职工 / 电信 / 联通 / 移动出口后缀自动拼接
- 自动重连开关控制检测和认证流程
- Drcom
GET + JSONP登录 - 登录前自动访问认证首页预热会话
- 定时检测网络连通状态
- 网络异常时自动重新登录
- 运行状态和关键事件日志显示
- 系统托盘隐藏、打开、暂停和退出
- 开机自启动开关
- 本地配置保存,密码不写入日志
- 独立直连请求通道,降低 Clash 等系统代理干扰
- Windows 应用图标、托盘图标和安装包图标
当前网关配置集中在 src/main/aust-drcom-config.ts:
- 认证首页:
http://10.255.0.19/ - 登录接口:
http://10.255.0.19/drcom/login - 教职工出口:
@jzg - 学生电信出口:
@aust - 学生联通出口:
@unicom - 学生移动出口:
@cmcc
教职工出口 对应后缀为 @jzg,登录时会提交为 DDDDD=账号@jzg。该出口有接入环境限制,必须在学校网关允许的对应 IP / 接入位置下使用;如果当前电脑获取到的内网 IP、MAC、NAS 或端口信息与该出口不匹配,即使账号和密码正确,也可能认证失败。
典型错误信息:
Rad:Mac, IP, NASip, PORT err(2)!出现该错误时,通常不是密码错误,也不是 NetKeeper 拼接参数错误,而是当前接入环境不满足教职工出口的认证条件。处理建议:
- 确认当前网络环境是否属于教职工出口允许的 IP / 接入区域。
- 如果当前处于学生网络环境,请选择学生电信、学生联通或学生移动出口。
- 如果确认应当使用教职工出口但仍报错,需要检查学校网关侧账号、MAC、IP、NAS 或端口绑定情况。
如学校接口变化,优先修改 src/main/aust-drcom-config.ts。
NetKeeper 不是固定时间强制登录一次,而是:
- 用户打开“自动重连”。
- 软件每隔配置的检测间隔检测网络。
- 优先直连访问百度、阿里云判断外网是否可达。
- 如果网络正常,只更新状态,不执行登录。
- 如果网络异常,才调用校园网登录接口重新认证。
NetKeeper 已增加独立直连请求通道:
src/main/direct-fetch.ts网络检测和校园网认证请求会尽量不使用 Windows 系统代理,能缓解 Clash 普通系统代理残留导致无法认证的问题。
当前实测结果:
- 只要 Clash 开启“开机自启动”,NetKeeper 在 Clash 普通代理模式和
TUN模式下都可以正常连接校园网。 - 这个前提很重要:Clash 必须开启开机自启动。
- 如果 Clash 没有开机自启动,但 Windows 保留了上一次的代理或网络接管状态,开机后可能出现浏览器和 NetKeeper 请求异常。
建议同时开启:
- Clash 开机自启动
- NetKeeper 开机自启动
npm install
npm run devnpm run typecheck
npm run build
npm run dist当前版本号来自 package.json 和 package-lock.json,安装包文件名会自动使用该版本号。
生成当前版本 Windows 安装包:
npm run dist指定新版本并打包,例如 0.4.0:
npm version 0.4.0 --no-git-tag-version
npm run dist也可以手动修改 package.json 和 package-lock.json 中的 version 后再执行:
npm run dist打包产物默认输出到:
release/当前 0.3.0 安装包:
release/NetKeeper-0.3.0-setup.exe免安装运行目录:
release/win-unpacked/用户配置默认保存到:
%APPDATA%\NetKeeper\netkeeper.config.json安装方式分为用户安装和系统安装,但配置始终按当前 Windows 用户分别保存。