借助第三方 广东电信天翼校园(ZSM验证)登入认证客户端,实现自动认证联网的效果。配合软路由 Docker 部署可实现多设备共享。下面的教程是自己一步步摸索过来的,为脚本原作者的说明进行详细的阐释,提供给后面的学弟学妹,希望能让大家少走一些弯路。
欢迎Fork then Pull 一起共建仓库~
见另一位开发者项目 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
运行。
(进阶)通过计划任务设置开机自启动。
注意:
推荐: 我使用的是 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。
/root
文件夹内。chmod 777 /root/AutoReboot.sh
# 每10分钟自动检查网络连接,失败则重启
*/10 * * * * sh /root/AutoReboot.sh
提示:可以通过搜索关键词
user.notice root
来检查脚本的运行情况。