很多学校的天翼校园网需要客户端认证才能上网,原版 Esurfing-go 已经能用命令行完成认证和心跳保活,但配置多张网卡、查看运行状态时仍然离不开手敲命令和编辑配置文件。
Esurfing-go-webui 在它的基础上加了一层 Web 管理界面,把多网卡管理、实时日志、会话恢复这些常用功能做成了可视化操作。单二进制零依赖,下载即用。
解决什么问题
一台设备(软路由、随身 WiFi、宿舍小主机)上往往有多张网卡,每张网卡可能对应不同的认证账号。原版只能靠命令行和配置文件管理,状态不直观,出问题要翻日志;进程崩溃或重启后认证状态丢失,需要重新登录。
Esurfing-go-webui 针对这些痛点,提供了浏览器里就能完成所有操作的管理面板。
相比原版的增强
Web 管理面板
响应式设计,手机、平板、电脑都能正常访问。卡片式展示每张网卡的状态,支持启用/禁用、登录/登出/强制登出等操作。系统网卡自动发现,新增网卡时不用手动猜接口名。
会话持久化与恢复
认证状态、心跳信息会持久化保存。进程崩溃或重启后自动恢复会话、续上心跳,无需重新走一遍完整的认证流程。
实时日志
通过 SSE(Server-Sent Events)实时推送日志到浏览器,支持按级别过滤。日志落盘持久化,自动清理过期条目,避免磁盘被写满。
认证冷却机制
多接口认证间自动冷却,避免短时间内并发认证导致的冲突和异常。
RESTful API
所有界面操作都有对应的 HTTP API,方便接入自动化脚本、Home Assistant 或其他自研工具。
打包与系统集成
提供 Deb 包(systemd 服务)和 Opkg 包(OpenWrt init 脚本),开箱即用,开机自启。
认证流程
了解认证流程有助于排查问题:
|
|
会话持久化保存的就是登录后的会话与心跳信息,进程重启后直接续上心跳,跳过前面整套认证流程。
技术栈
| 项目 | 说明 |
|---|---|
| 语言 | Go 1.25.3+ |
| 前端 | 单文件 HTML(embed 嵌入) |
| 加密 | SM4 / ZUC 国密算法(gmsm 库) |
| 部署 | 单二进制 / Deb / Opkg |
| 平台 | Linux / Windows / macOS / OpenWrt |
支持平台
通过 Go 交叉编译覆盖主流架构:
- Linux:amd64、arm(v7)、arm64、mips、mipsle、mips64、mips64le、riscv64
- Windows:amd64、arm64
- macOS:amd64、arm64
Deb 包覆盖 amd64、armhf、arm64;Opkg 包覆盖 x86_64、arm_cortex-a9、aarch64、mips_24kc、mipsel_24kc。
部署与使用
项目支持预编译二进制、源码构建、Deb 包、Opkg 包等多种部署方式。配置文件为 JSON 格式,支持多网卡独立配置和全局设置。详细的部署步骤、配置字段说明、API 文档都在仓库 README 中。
最简部署:从 Releases 下载对应平台的二进制文件,
chmod +x后直接运行,浏览器访问http://设备IP:8080即可。
DNS 注意事项
如果网络环境使用了 DoH(DNS over HTTPS),未认证状态下 DoH 无法工作,会导致认证所需域名解析失败。此时需要在接口配置中手动指定 dns_address(需带端口号,如 119.29.29.29:53),一般填写 DHCP 获取的 DNS 地址即可。
相关链接
如果在使用过程中遇到问题,建议先打开 Web 界面的实时日志面板观察认证流程卡在哪一步,再结合上面的认证流程逐步排查。