双击即用,静默运行在系统托盘。自动检测网络认证状态,在线时跳过,离线时自动登录 Dr.COM ePortal 网关。
YAU-AutoNet-Connect 是一个面向延安大学校园网的自动登录工具,适用于 Dr.COM/ePortal 认证网关。下载 exe 后首次配置一次账号密码,之后双击即可后台静默运行,无需手动打开浏览器登录。
项目同时提供 Python 脚本和 PowerShell 脚本两个版本,密码均使用 Windows DPAPI 加密存储。
| 组件 | 说明 |
|---|---|
campus_auto_login.py |
Python 主程序,支持托盘后台运行、日志窗口、开机自启 |
campus_auto_login.ps1 |
PowerShell 兼容版本,支持初始化、检测、单次登录和持续监控 |
campus_auto_login.spec |
PyInstaller 打包配置,已排除不必要依赖以压缩体积 |
watch_build.py |
开发用,监听代码变更自动重新打包 |
| 功能 | 说明 |
|---|---|
| 系统托盘后台运行 | 双击 exe 直接最小化到托盘,无终端窗口 |
| 自动检测与登录 | 在线时跳过,离线时自动调用认证接口登录 |
| Clash 系统代理兼容 | raw direct、缓存源IP、网卡绑定、路由修复、PowerShell no-proxy、临时代理旁路多层兜底,系统代理开启时仍优先直连校园网网关 |
| Wi-Fi 自动恢复 | 认证退出后出现 Windows 路由丢失或 WLAN 软件无线电关闭时,自动尝试启用 WLAN 并重连校园网 SSID |
| Portal 自动发现 | 默认网关不可达时,自动尝试配置地址、默认地址、网关子网、NCSI 探测发现校园网认证入口 |
| CLI 诊断版 | campus_auto_login_cli.exe提供实时命令行输出,便于定位代理、路由、网卡、SSID、portal可达性问题 |
| 实时日志窗口 | 托盘右键菜单打开,实时显示运行日志 |
| 开机自启 | 托盘右键菜单一键切换,写入 Windows 注册表 |
| 防重复运行 | Windows Mutex 保护,重复启动时弹窗提示 |
| 日志自动轮转 | 超过 1MB 自动归档为 .log.old |
| DPAPI 密码加密 | 仅当前 Windows 用户在本机可解密 |
| PowerShell 兼容 | 可自动读取 PowerShell 版生成的配置文件 |
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows 10 / 11 |
| 校园网环境 | 网关地址 http://10.200.84.3(Dr.COM ePortal) |
| 其他网关 | 可通过 --portal-base 参数指定 |
首次下载后不能直接登录校园网,必须先运行初始化命令配置账号密码。
从 Releases 下载:
| 文件 | 用途 |
|---|---|
campus_auto_login.exe |
日常使用,双击后台静默运行 |
campus_auto_login_cli.exe |
首次初始化、诊断、排障(命令行版) |
两个 exe 放到同一个纯英文路径下,例如 D:\tools\YAU-AutoNet-Connect\。
在 exe 所在目录打开 PowerShell,运行:
.\campus_auto_login_cli.exe --init必须使用
campus_auto_login_cli.exe(命令行版)进行初始化。campus_auto_login.exe是后台托盘版,没有命令行交互能力。
按提示依次输入:
| 提示 | 说明 |
|---|---|
Campus username |
校园网用户名 |
Campus password |
校园网密码(输入时不可见) |
Service suffix |
运营商后缀:直接回车为默认,@dx 电信,@lt 联通 |
密码使用 Windows DPAPI 加密,配置文件生成在 exe 所在目录,不同用户的密码互不影响。
配置完成后,以后直接双击 campus_auto_login.exe 即可。程序自动进入系统托盘后台运行。
双击 exe 后,程序驻留在任务栏右下角托盘区。右键点击托盘图标:
| 菜单项 | 说明 |
|---|---|
| 开机自启 | 勾选后开机自动启动,再次点击取消 |
| 查看日志 | 打开实时日志窗口 |
| 退出 | 关闭程序 |
程序运行时会自动检测网络状态:在线时跳过,离线时尝试登录。日志超过 1MB 会自动归档为 .log.old。
v1.0.4 说明: 本次更新没有改变启动方式和后台运行方式。双击 exe 后仍在系统托盘静默运行,不需要长期打开终端窗口。v1.0.4 重点增强 Clash 系统代理开启场景下的 portal 直连、路由恢复、Wi-Fi 自动重连和故障诊断能力。
exe 和 Python 脚本均支持以下命令:
# 查看版本
.\campus_auto_login.exe --version
# 初始化配置(首次使用必须)
.\campus_auto_login.exe --init
# 检查当前在线状态
.\campus_auto_login.exe --check
# 检查一次,离线时自动登录
.\campus_auto_login.exe --once
# 命令行实时输出版,推荐用于排障
.\campus_auto_login_cli.exe --once --allow-temporary-proxy-bypass
# 强制验证校园网网关可达性
.\campus_auto_login_cli.exe --force-portal-reachable --allow-temporary-proxy-bypass
# 输出详细连通性诊断
.\campus_auto_login_cli.exe --diagnose --allow-temporary-proxy-bypass
# 查看当前 Wi-Fi SSID
.\campus_auto_login_cli.exe --check-wifi
# 保存当前 Wi-Fi 为校园网 SSID
.\campus_auto_login_cli.exe --set-campus-ssid
# 显式指定校园网 SSID,用于自动重连
.\campus_auto_login_cli.exe --once --campus-ssid "YADX-STU"
# 以指定间隔持续监控(5-30 秒)
.\campus_auto_login.exe --interval 30
# 显式指定托盘模式
.\campus_auto_login.exe --tray
# 指定自定义网关
.\campus_auto_login.exe --tray --portal-base http://10.200.100.1
# 诊断校园网网关连通性
.\campus_auto_login.exe --diagnose
# 单次检测/登录后退出(不启动托盘)
.\campus_auto_login.exe --oncepython .\campus_auto_login.py --version
python .\campus_auto_login.py --init
python .\campus_auto_login.py --check
python .\campus_auto_login.py --once
python .\campus_auto_login.py --interval 30
python .\campus_auto_login.py --traypowershell -ExecutionPolicy Bypass -File .\campus_auto_login.ps1 -Init
powershell -ExecutionPolicy Bypass -File .\campus_auto_login.ps1 -CheckOnly
powershell -ExecutionPolicy Bypass -File .\campus_auto_login.ps1 -Once
powershell -ExecutionPolicy Bypass -File .\campus_auto_login.ps1 -IntervalSeconds 30| 文件 | 生成方式 | 说明 |
|---|---|---|
campus_login_py.config.json |
--init 生成 |
Python 版配置,密码为 DPAPI Base64 |
campus_login.config.json |
PowerShell -Init 生成 |
PowerShell 版配置,密码为 SecureString Hex |
两个版本互相兼容:Python 脚本会自动读取 PowerShell 版配置。配置文件和日志默认生成在 exe 所在目录。
不要把配置文件、日志文件上传到 GitHub 或公开分享。 虽然密码已加密,但仍不应公开。
git clone https://github.com/liar-ac/YAU-AutoNet-Connect.git
cd YAU-AutoNet-Connect
pip install -r requirements.txt
python .\campus_auto_login.py --init
python .\campus_auto_login.py --tray如需开发依赖(PyInstaller、watchdog):
pip install -r requirements-dev.txtpip install -r requirements-dev.txt
python -m pytest test_campus_auto_login.py -q
pyinstaller campus_auto_login.spec
pyinstaller campus_auto_login_cli.spec打包产物在 dist/:
| 文件 | 用途 |
|---|---|
campus_auto_login.exe |
托盘后台版,适合日常双击运行 |
campus_auto_login_cli.exe |
命令行诊断版,适合 --once、--diagnose、--force-portal-reachable |
如需监听代码变更自动重新打包:
python watch_build.pyUPX 是可选的 exe 压缩工具。PyInstaller 检测到 UPX 时会自动启用,未安装时打包正常进行,仅体积略大。
| 项目 | 说明 |
|---|---|
| 密码加密 | Windows DPAPI,仅当前用户在本机可解密 |
| 配置文件 | 含加密密码,不应公开分享 |
| 使用环境 | 仅适用于可信校园网环境 |
| 数据收集 | 不收集、不上传任何用户数据 |
| 网络请求 | 仅与校园网网关通信 |
如发现安全问题,请勿公开提交 Issue,详见 SECURITY.md。
- 本项目仅适用于 Windows 系统
- exe 路径建议使用纯英文,例如
D:\tools\YAU-AutoNet-Connect\,避免中文、空格或特殊字符 - 不需要管理员权限运行
- 如果提示"已在运行中",检查任务管理器中是否已有
campus_auto_login.exe进程 - 如果只开启 Clash 系统代理,不需要手动关闭 Clash,本工具访问校园网网关时会自动直连
- 如果开启 TUN/虚拟网卡模式,仍建议在 Clash 规则中给校园网网关和内网 IP 段添加 DIRECT 规则
- 如果 Windows 报告“无线局域网接口电源关闭”,程序会尝试启用 WLAN 软件无线电并重连校园网;硬件无线开关、飞行模式或驱动级禁用仍需用户手动恢复
- 不要把配置文件(
campus_login_py.config.json、campus_login.config.json)和日志文件上传到 GitHub
| 限制 | 说明 |
|---|---|
| 仅限 Windows | 依赖 Windows DPAPI 和注册表,不支持 macOS / Linux |
| 单网关 | 默认只支持 http://10.200.84.3,多网关需手动指定 --portal-base |
| 单用户单机 | DPAPI 加密绑定当前 Windows 用户,换用户或换机需重新 --init |
| PowerShell 版无托盘 | PowerShell 版不支持系统托盘、日志窗口和开机自启菜单 |
| 日志无远程上报 | 日志仅写入本地文件,不支持远程查看或上报 |
| TUN/虚拟网卡模式 | 本版本主要解决系统代理场景;TUN/虚拟网卡属于更底层流量接管,仍需在 Clash 规则中配置 DIRECT |
| 硬件无线禁用 | 程序只能尝试恢复 Windows 软件层 WLAN;硬件开关、飞行模式、驱动禁用无法强制绕过 |
| 问题 | 解决方法 |
|---|---|
Config not found |
首次使用需先运行 --init 配置账号密码 |
Portal unreachable |
检查是否已连接校园网,网关地址是否正确 |
| 登录失败 | 检查用户名、密码、运营商后缀是否正确 |
| 双击 exe 无窗口 | 正常行为,程序在系统托盘运行 |
| 托盘图标找不到 | 查看任务栏隐藏图标区域,或检查任务管理器 |
| 提示"已在运行中" | 已有实例在运行,任务管理器结束已有进程 |
--check 显示 Offline |
确认已连接校园网,尝试运行 --once |
| 开启 Clash 系统代理后提示 Portal unreachable | 先运行 campus_auto_login_cli.exe --force-portal-reachable --allow-temporary-proxy-bypass。v1.0.4 会优先使用 raw direct 直连,并在失败时尝试缓存源IP、网卡绑定、路由修复、PowerShell no-proxy 和临时代理旁路 |
WinError 10065 |
表示 Windows 认为 10.200.84.3 不可路由。v1.0.4 会等待路由恢复、尝试重连校园网 Wi-Fi,并输出 Failure Matrix。仍失败时请检查 WLAN 是否被硬件/飞行模式禁用 |
| 日志出现“无线局域网接口电源关闭” | 程序会尝试启用 WLAN 接口和软件无线电后重连。若仍失败,说明 Windows 不允许软件恢复,需要手动打开 Wi-Fi 或关闭飞行模式 |
| 自动发现的 portal 地址不正确 | 使用 --portal-base http://x.x.x.x 手动指定正确的校园网网关地址 |
Clash 内网直连规则示例(适用于 TUN/虚拟网卡模式):
rules:
- IP-CIDR,10.200.84.3/32,DIRECT,no-resolve
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- IP-CIDR,100.64.0.0/10,DIRECT,no-resolve
- DOMAIN-SUFFIX,edu.cn,DIRECT欢迎提交 Issue 和 Pull Request,详见 CONTRIBUTING.md。
| 方式 | 信息 |
|---|---|
| 3291890183 | |
| 邮箱 | yuhaohu05@163.com |
本项目采用 MIT License 开源,详见 LICENSE。