借助第三方 广东电信天翼校园(ZSM验证)登入认证客户端,实现自动认证联网的效果。配合软路由 Docker 部署可实现多设备共享。下面的教程是自己一步步摸索过来的,为脚本原作者的说明进行详细的阐释,提供给后面的学弟学妹,希望能让大家少走一些弯路。
欢迎Fork then Pull 一起共建仓库~
- Java 23 及以上
- x86_64 或 ARMv8 架构
- glibc (仅限 Linux)
- 内存 ≥ 200M
- 下载
ESurfingDialer-1.8.0-all.jar
并重命名为client.jar
。
- 新建记事本,填入以下代码,保存后重命名为“校园网自动登陆.bat”。
注意:将
<用户名/手机号>
和<密码>
替换为你自己的!
@echo off
cd D:\Log in
java -jar client.jar -u <用户名/手机号> -p <密码>
pause
-
在 D 盘新建 Log in 文件夹,并将
client.jar
和校园网自动登陆.bat
放入该文件夹中。 -
关闭所有杀毒软件或将脚本设置为白名单,双击
校园网自动登陆.bat
运行。 -
(进阶)通过计划任务设置开机自启动。
![](https://private-user-images.githubusercontent.com/61287015/372334011-0250045a-577b-4e9e-aaea-2300434b3457.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDc1MzMsIm5iZiI6MTczOTgwNzIzMywicGF0aCI6Ii82MTI4NzAxNS8zNzIzMzQwMTEtMDI1MDA0NWEtNTc3Yi00ZTllLWFhZWEtMjMwMDQzNGIzNDU3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE1NDcxM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTYxZjIwYTRmZjM5OTBiYWQ5MjMwMDU1ODY1OTQ2MWU3NDk2ZGEyOTYzOGI3ZjQ0MmZjNjFiNzY5NjM3OTQzZmUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.JpKTlb1dFYBfQ4wAdhKEhuT-6XRJswqDQcntf5bfrzo)
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
。
![](https://private-user-images.githubusercontent.com/61287015/372334876-e639c74a-c97e-4b8b-ab20-44c4b4a5309e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDc1MzMsIm5iZiI6MTczOTgwNzIzMywicGF0aCI6Ii82MTI4NzAxNS8zNzIzMzQ4NzYtZTYzOWM3NGEtYzk3ZS00YjhiLWFiMjAtNDRjNGI0YTUzMDllLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE1NDcxM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJlYTdkYWZiYzg4NjE1MmRhMzM1NmY2NDIzMzVjZWNhOGFjMmYyOThlOGU2MjNjMGMyMjYwYTVmMjU5OWJjMzAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.lnz_tHkdpINsRy9ig2W9b8nlKZtm3axd51OUdpk2qao)
![](https://private-user-images.githubusercontent.com/61287015/372335845-38d42459-a4df-4c08-96a1-c5c58d998423.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDc1MzMsIm5iZiI6MTczOTgwNzIzMywicGF0aCI6Ii82MTI4NzAxNS8zNzIzMzU4NDUtMzhkNDI0NTktYTRkZi00YzA4LTk2YTEtYzVjNThkOTk4NDIzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE1NDcxM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTUxOTRlZjYzMzZjMzU1MjZhOTcwMjgzNzc5YTdlOTk3MGJkYzRmMTNiZjk5NzQ0NmY2Zjk5ZjllOWE3NmQ5OTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.wNkQKPdCCqKSah09hpV1nXnRnvxYOO2ljR3HCfmK-Jg)
- 返回主页,点击“服务” -> “终端”,输入账号
root
和密码,连接到终端。
![](https://private-user-images.githubusercontent.com/61287015/372336133-bb4fbd89-bb3e-4bed-b387-ca1d519e46f1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDc1MzMsIm5iZiI6MTczOTgwNzIzMywicGF0aCI6Ii82MTI4NzAxNS8zNzIzMzYxMzMtYmI0ZmJkODktYmIzZS00YmVkLWIzODctY2ExZDUxOWU0NmYxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE1NDcxM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTUyM2JiZDA2N2VkZTBiZDkyYTg4ODQwNWMxNzM5M2Q2Nzg1YjFhYzgwOGRhZDBjY2RkNDA0MDdmOGU0MWU2ODEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.FMw0i83iiJ6bT8i2UuvKDeC8qFRKaCrjhAHW_03CD0s)
-
在终端中粘贴以下命令,加载 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:23 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 容器:
![](https://private-user-images.githubusercontent.com/61287015/372336674-63a4cc26-fbe7-4c65-9efe-a06dd4acfbef.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDc1MzMsIm5iZiI6MTczOTgwNzIzMywicGF0aCI6Ii82MTI4NzAxNS8zNzIzMzY2NzQtNjNhNGNjMjYtZmJlNy00YzY1LTllZmUtYTA2ZGQ0YWNmYmVmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE1NDcxM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTViZDM3ZTVmYTU4NWFlMjJiYzk1NTI5YjVkZGVhOTE0YmNmYjEwZjUyZGRjZjg1MWY2NGY3ZGUzZmM1MzdmZDEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.tv_D1sdX9YLouh2yPYl5sFDKip6Z4LcVqq6rB1lPckk)
docker build -t dialer .
-
构建完成后,粘贴以下命令导出镜像:
docker save -o dialer.tar dialer
![](https://private-user-images.githubusercontent.com/61287015/372336819-fb18ea64-dfbb-40ce-b2d5-01c4ef8f6893.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDc1MzMsIm5iZiI6MTczOTgwNzIzMywicGF0aCI6Ii82MTI4NzAxNS8zNzIzMzY4MTktZmIxOGVhNjQtZGZiYi00MGNlLWIyZDUtMDFjNGVmOGY2ODkzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE1NDcxM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI5OTk2OWUwZTM4YjI2NmMzNzE4YzliNGIyZGUzYmIxMmI1NGRiZDg4N2VkOGJmMjFhODA5ODA5YmU4ZGJhMDYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.x9plxUbadzTMeb7IClg-3hCAuOkUoNxNs6noW-bqsZ8)
-
上传
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。
![](https://private-user-images.githubusercontent.com/61287015/375444643-49e78c95-4278-496a-a9fb-9107d69e788d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDc1MzMsIm5iZiI6MTczOTgwNzIzMywicGF0aCI6Ii82MTI4NzAxNS8zNzU0NDQ2NDMtNDllNzhjOTUtNDI3OC00OTZhLWE5ZmItOTEwN2Q2OWU3ODhkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE1NDcxM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTExZmNkMTA2ZDNiN2JjMjMzOGQ2NzU4ZDUyN2Q4NDdiMGE0NWViYTE4ZjQ0YTlhMmI0MTk3YTc2YzNjMmVmMTYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.TBsMOQ4uoBjmsIXyRfdW5sBGvZt81T73aGfYul6tPLI)
chmod 777 /root/AutoReboot.sh
![](https://private-user-images.githubusercontent.com/61287015/375445504-b6915874-c08c-40bb-a5d3-b5ba2f198675.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDc1MzMsIm5iZiI6MTczOTgwNzIzMywicGF0aCI6Ii82MTI4NzAxNS8zNzU0NDU1MDQtYjY5MTU4NzQtYzA4Yy00MGJiLWE1ZDMtYjViYTJmMTk4Njc1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE1NDcxM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWNjNzMwYjQ3MjU5YTExYmI1NTdkYjE5NDBhNTcyNGEyZTExNGM4ZDY2OTMyZGJhZDIxNmI2YjU3YTc5MWY1MDkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.qP8xcS1ymaXUkJHrCqlBLJuHYT6VmDRDC9iEnCp7n0E)
# 每10分钟自动检查网络连接,失败则重启
*/10 * * * * sh /root/AutoReboot.sh
![](https://private-user-images.githubusercontent.com/61287015/375446260-5121cce9-3691-45b2-97a0-35af00d08fe1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDc1MzMsIm5iZiI6MTczOTgwNzIzMywicGF0aCI6Ii82MTI4NzAxNS8zNzU0NDYyNjAtNTEyMWNjZTktMzY5MS00NWIyLTk3YTAtMzVhZjAwZDA4ZmUxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE1NDcxM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJiOTRhMzZjODc2NGI2NDk2OWM3OTI5ZmYxOGQyY2EzM2NlMmJkOTUxYTY5MDZjY2MzOTEyZjE4MzMwNjI2NDImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.2Lw8mN3XvrV9khkxQEQoWhZG5HyTrPLY-EXDefgvXdU)
提示:可以通过搜索关键词
user.notice root
来检查脚本的运行情况。
![](https://private-user-images.githubusercontent.com/61287015/375446668-c01d9135-591b-4c43-b287-393d660715a6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDc1MzMsIm5iZiI6MTczOTgwNzIzMywicGF0aCI6Ii82MTI4NzAxNS8zNzU0NDY2NjgtYzAxZDkxMzUtNTkxYi00YzQzLWIyODctMzkzZDY2MDcxNWE2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE1NDcxM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWEyY2Q2ZGNiOGYzMzI5MDkzZmQ3MDgwMmU4YTA1NTExNmQ1MmZmNzZlYjkzODFmMGJhZWIwZDAzYjdiZTZiMDImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.IrfS9BYaPracn5Y4vwmsJAdg9RcPvyNi3kJ5tzjdgTo)