EricZhou05 / ESurfingDialerTutorial

广东电信天翼校园(ZSM验证)登入认证脚本详细教程。破解校园网多设备限制,每日自动认证登陆,软路由零基础搭建教程。成功实例:广东药科大学 GDPU (中山校区) 校园网
GNU Affero General Public License v3.0
15 stars 2 forks source link
dialer esdialer esurfing

广东电信天翼校园网自动认证教程

GitHub License

借助第三方 广东电信天翼校园(ZSM验证)登入认证客户端,实现自动认证联网的效果。配合软路由 Docker 部署可实现多设备共享。下面的教程是自己一步步摸索过来的,为脚本原作者的说明进行详细的阐释,提供给后面的学弟学妹,希望能让大家少走一些弯路。

欢迎Fork then Pull 一起共建仓库~

运行环境

使用教程

Windows 部署

方法一:解压即用版(主脚本可能非最新)

见另一位开发者项目 ESurfingDialer-onekey

方法二:自行部署版(主脚本为最新)

1. 安装 Java 21 并配置环境

Java官网下载 JDK21 版本详细教程(下载、安装、环境变量配置)

2. 运行程序
  1. 下载发行版并重命名为 client.jar

    ESurfingDialer 发行版

  2. 新建记事本,填入以下代码,保存后重命名为“校园网自动登陆.bat”。

    注意:将 <用户名/手机号><密码> 替换为你自己的!

    @echo off
    cd D:\Log in
    java -jar client.jar -u <用户名/手机号> -p <密码>
    pause
  3. 在 D 盘新建 Log in 文件夹,并将 client.jar校园网自动登陆.bat 放入该文件夹中。

  4. 关闭所有杀毒软件或将脚本设置为白名单,双击 校园网自动登陆.bat 运行。

  5. (进阶)通过计划任务设置开机自启动。

    Windows 任务计划程序(task scheduler)介绍

OpenWrt 部署(支持多设备共享)

1. 购置软路由

注意:

推荐: 我使用的是 J1800 小主机,在二手市场上可以低价购买(百元)。在购买时要询问卖家是否为双千兆网口,以便发挥宽带的全部性能。最好配有 12V DC 供电接口,方便插座供电。

2. 刷入 OpenWrt 系统

推荐使用 iStoreOS,这是一款适合新手的 OpenWrt 软路由系统,自带 Docker 环境,UI 美观。
下载适配设备的镜像文件:iStoreOS 下载

刷入教程详见此视频的 4:10 - 7:40 分钟:刷入教程视频

提示:网口地址修改部分较为复杂难懂,建议多查看视频和资料,谨慎操作。

3. 部署 Docker 镜像

进入 OpenWrt 系统后,即可部署 Docker 镜像并创建容器。

方法一:使用现成的 Docker 镜像(可能非最新)
  1. 下载我打包好的镜像文件(版本:ESurfingDialer-1.7.0-all):下载链接

  2. 在OpenWrt系统主页点击“文件管理”,进入 /tmp 目录,上传下载好的 dialer.tar

  1. 返回主页,点击“服务” -> “终端”,输入账号 root 和密码,连接到终端。
  1. 在终端中粘贴以下命令,加载 Docker 镜像:

    docker load -i /tmp/dialer.tar
  2. 镜像创建完成后,粘贴以下命令运行容器:

    docker run -itd -e DIALER_USER=<用户名/手机号> -e DIALER_PASSWORD=<密码> --name dialer-client --network host --restart=always dialer

    注意:将 <用户名/手机号><密码> 替换为你的信息。

  3. 输入以下命令查看容器日志,检查运行状态:

    docker logs -f dialer-client

    如果输出以下信息,则表示部署成功:

    INFO [com.rsplwe.esurfing.Client] (Client:82) - The login has been authorized.
方法二:自行打包 Docker 镜像(脚本为最新)
  1. 在电脑上搭建 Docker 环境,运行 Docker Desktop 应用。

  2. 参考此视频的 4:30 - 6:15 分钟:打包镜像视频

  3. 下载原脚本并重命名为 client.jar原脚本下载链接

  4. 创建 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,防止脚本由于权限不足而无法执行。

  5. 创建 run.sh 文件,输入以下内容:

    #!/bin/sh
    java -jar client.jar -u ${DIALER_USER} -p ${DIALER_PASSWORD}

    注意:Windows 和 Linux 的换行符不同,可能会导致脚本错误,详细请查看 换行符问题解决方案

  6. Dockerfilerun.shclient.jar 放入同一个没有中文路径的文件夹中。

  7. 在文件夹内按住 Shift 键并右键选择“在此处打开 PowerShell 窗口”,粘贴以下命令构建 Docker 容器:

   docker build -t dialer .
  1. 构建完成后,粘贴以下命令导出镜像:

    docker save -o dialer.tar dialer
  1. 上传 dialer.tar 文件至软路由 /tmp 目录。

  2. 在软路由终端中粘贴以下命令加载镜像:

    docker load -i /tmp/dialer.tar
  3. 最后粘贴以下命令运行容器:

    docker run -itd -e DIALER_USER=<用户名/手机号> -e DIALER_PASSWORD=<密码> --name dialer-client --network host --restart=always dialer

    注意:将 <用户名/手机号><密码> 替换为你的信息。

  4. 使用以下命令查看容器日志,检查运行状态:

    docker logs -f dialer-client

    如果输出以下信息,则表示部署成功:

    INFO [com.rsplwe.esurfing.Client] (Client:82) - The login has been authorized.

    4. 部署Wifi

    购买一个千兆普通路由器,将wan口连接软路由的lan口,然后将上网方式改为DHCP,就可以开Wifi多设备使用啦!

PixPin_2024-10-01_13-59-33

进阶

针对 issues 里面提到的常见问题:

提供一个解决方案,通过增加计划任务,定期检查网络连接情况,若发现断网则自动重启路由器。具体操作步骤如下:

1. 新建一个文档,粘贴以下内容:

#!/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

2. 上传文件到软路由的 /root 文件夹内。

3. 打开软路由终端,粘贴以下代码并回车给脚本赋予最高运行权限:

chmod 777 /root/AutoReboot.sh

4. 回到软路由主页,依次进入 系统 -> 计划任务,粘贴以下代码:

# 每10分钟自动检查网络连接,失败则重启
*/10 * * * * sh /root/AutoReboot.sh

5. 重启软路由生效。

6. 脚本的执行情况可以在 状态 -> 系统日志 中找到。

提示:可以通过搜索关键词 user.notice root 来检查脚本的运行情况。