借助第三方 广东电信天翼校园(ZSM验证)登入认证客户端,实现自动认证联网的效果。配合软路由 Docker 部署可实现多设备共享。下面的教程是自己一步步摸索过来的,为脚本原作者的说明进行详细的阐释,提供给后面的学弟学妹,希望能让大家少走一些弯路。
欢迎Fork then Pull 一起共建仓库~
- Java 21 及以上
- x86_64 或 ARMv8 架构
- glibc (仅限 Linux)
- 内存 ≥ 200M
见另一位开发者项目 ESurfingDialer-onekey
-
下载发行版并重命名为
client.jar
。 -
新建记事本,填入以下代码,保存后重命名为“校园网自动登陆.bat”。
注意:将
<用户名/手机号>
和<密码>
替换为你自己的!@echo off cd D:\Log in java -jar client.jar -u <用户名/手机号> -p <密码> pause
-
在 D 盘新建 Log in 文件夹,并将
client.jar
和校园网自动登陆.bat
放入该文件夹中。 -
关闭所有杀毒软件或将脚本设置为白名单,双击
校园网自动登陆.bat
运行。 -
(进阶)通过计划任务设置开机自启动。
OpenWrt 部署(支持多设备共享)可使用一键脚本完成部署
注意:
- 仅支持 x86_64 或 ARMv8 架构的 CPU(因Docker 环境要求)
- 内存 ≥ 200M(因Docker 环境要求)
- 双网口(用于多设备共享)
推荐: 我使用的是 J1800 小主机,在二手市场上可以低价购买(百元)。在购买时要询问卖家是否为双千兆网口,以便发挥宽带的全部性能。最好配有 12V DC 供电接口,方便插座供电。
推荐使用 iStoreOS,这是一款适合新手的 OpenWrt 软路由系统,自带 Docker 环境,UI 美观。
下载适配设备的镜像文件:iStoreOS 下载
刷入教程详见此视频的 4:10 - 7:40 分钟:刷入教程视频
提示:网口地址修改部分较为复杂难懂,建议多查看视频和资料,谨慎操作。
进入 OpenWrt 系统后,即可部署 Docker 镜像并创建容器。
-
下载我打包好的镜像文件(版本:ESurfingDialer-1.7.0-all):下载链接
-
在OpenWrt系统主页点击“文件管理”,进入
/tmp
目录,上传下载好的dialer.tar
。
- 返回主页,点击“服务” -> “终端”,输入账号
root
和密码,连接到终端。
-
在终端中粘贴以下命令,加载 Docker 镜像:
docker load -i /tmp/dialer.tar
-
镜像创建完成后,粘贴以下命令运行容器:
docker run -itd -e DIALER_USER=<用户名/手机号> -e DIALER_PASSWORD=<密码> --name dialer-client --network host --restart=always dialer
注意:将
<用户名/手机号>
和<密码>
替换为你的信息。 -
输入以下命令查看容器日志,检查运行状态:
docker logs -f dialer-client
如果输出以下信息,则表示部署成功:
INFO [com.rsplwe.esurfing.Client] (Client:82) - The login has been authorized.
-
在电脑上搭建 Docker 环境,运行 Docker Desktop 应用。
-
参考此视频的 4:30 - 6:15 分钟:打包镜像视频
-
下载原脚本并重命名为
client.jar
:原脚本下载链接 -
创建 Dockerfile 文件,输入以下内容:
FROM openjdk:21 WORKDIR /app COPY run.sh /app COPY client.jar /app RUN chmod +x /app/run.sh CMD ["./run.sh"]
注意:Windows 和 Linux 的换行符不同,可能会导致脚本错误,详细请查看 换行符问题解决方案。
在实际测试中,相较原作者的代码,咱增加了
RUN chmod +x /app/run.sh
,防止脚本由于权限不足而无法执行。 -
创建
run.sh
文件,输入以下内容:#!/bin/sh java -jar client.jar -u ${DIALER_USER} -p ${DIALER_PASSWORD}
注意:Windows 和 Linux 的换行符不同,可能会导致脚本错误,详细请查看 换行符问题解决方案。
-
将
Dockerfile
、run.sh
和client.jar
放入同一个没有中文路径的文件夹中。 -
在文件夹内按住 Shift 键并右键选择“在此处打开 PowerShell 窗口”,粘贴以下命令构建 Docker 容器:
docker build -t dialer .
-
构建完成后,粘贴以下命令导出镜像:
docker save -o dialer.tar dialer
-
上传
dialer.tar
文件至软路由/tmp
目录。 -
在软路由终端中粘贴以下命令加载镜像:
docker load -i /tmp/dialer.tar
-
最后粘贴以下命令运行容器:
docker run -itd -e DIALER_USER=<用户名/手机号> -e DIALER_PASSWORD=<密码> --name dialer-client --network host --restart=always dialer
注意:将
<用户名/手机号>
和<密码>
替换为你的信息。 -
使用以下命令查看容器日志,检查运行状态:
docker logs -f dialer-client
如果输出以下信息,则表示部署成功:
INFO [com.rsplwe.esurfing.Client] (Client:82) - The login has been authorized.
购买一个千兆普通路由器,将wan口连接软路由的lan口,然后将上网方式改为DHCP,就可以开Wifi多设备使用啦!
针对 issues 里面提到的常见问题:
提供一个解决方案,通过增加计划任务,定期检查网络连接情况,若发现断网则自动重启路由器。具体操作步骤如下:
#!/bin/sh
tries=0
logger "my network watchdog start"
while [[ $tries -lt 5 ]]
do
if /bin/ping -c 1 223.5.5.5 >/dev/null
then
logger "network pass, exit."
exit 0
fi
tries=$((tries+1))
sleep 10
done
logger "network error, restart network"
reboot
注释:
223.5.5.5
是阿里的 DNS 服务器,用于检测是否断网。- 代码会每隔 10秒 检测一次网络连接,若连续 5次 检测都无法联网,则自动重启路由器。
将文件保存并重命名为 AutoReboot.sh。
chmod 777 /root/AutoReboot.sh
# 每10分钟自动检查网络连接,失败则重启
*/10 * * * * sh /root/AutoReboot.sh
提示:可以通过搜索关键词
user.notice root
来检查脚本的运行情况。