Giter Club home page Giter Club logo

zju-connect's Introduction

ZJU Connect

🚫 免责声明

本程序按原样提供,作者不对程序的正确性或可靠性提供保证,请使用者自行判断具体场景是否适合使用该程序,使用该程序造成的问题或后果由使用者自行承担


中文 | English

本程序基于 EasierConnect(现已停止维护)完成,感谢原作者 lyc8503

QQ 交流群:946190505,欢迎来自 ZJU 的使用者加入交流。

使用方法

直接运行

Windows 用户可以使用 GUI 版 ZJU Connect for Windows

  1. Release 页面下载对应平台的最新版本。

  2. 以 macOS 为例,解压出可执行文件 zju-connect

  3. macOS 需要先解除安全限制。命令行运行:sudo xattr -rd com.apple.quarantine zju-connect

  4. 命令行运行:./zju-connect -username <上网账户> -password <密码>

  5. 此时 1080 端口为 Socks5 代理,1081 端口为 HTTP 代理。如需更改默认端口,请参考参数说明。

作为服务运行

请先直接运行,确保无误后再创建服务,避免反复登录失败导致 IP 被临时封禁!

对于 Ubuntu/Debian、RHEL 系、Arch 等基于 Systemd 的 Linux 发行版,除按照上述方法运行外,亦可通过以下步骤将 ZJU Connect 安装为系统服务,实现自动重连功能:

  1. Release 页面下载对应平台的最新版本,将可执行文件放置于 /opt 目录并赋予可执行权限。

  2. /etc 下创建 zju-connect 目录,并在目录中创建配置文件config.toml,内容参照仓库中的 config.toml.example

  3. /lib/systemd/system 下创建 zju-connect.service 文件,内容如下:

    [Unit]
    Description=ZJU Connect
    After=network-online.target
    Wants=network-online.target
    
    [Service]
    Restart=on-failure
    RestartSec=5s
    ExecStart=/opt/zju-connect -config /etc/zju-connect/config.toml
    
    [Install]
    WantedBy=multi-user.target
    
  4. 执行以下命令启用服务并设置自启:

    $ sudo systemctl start zju-connect
    $ sudo systemctl enable zju-connect
    

对于 macOS 平台,系统服务的安装与运行基于 launchctl,使用上与 systemctl 有一定差异,可通过下述方案实现后台自动重连、开机自启动等功能:

  1. Release 页面下载对应 darwin 平台的最新版本。

  2. 将可执行文件放置于 /usr/local/bin/ 目录并赋予可执行权限。

  3. 解除安全限制:sudo xattr -rd com.apple.quarantine zju-connect

  4. 参考 com.zju.connect.plist 建立 macOS 系统服务配置文件,plist 文件为二进制文件,建议使用 PlistEdict Pro 编辑,其中关键配置参数如下:

    • UserName: 后台运行 zju-connect 的的用户默认为 root,建议修改为你自己的用户名
    • ProgramArguments: zju-connect 运行参数
    • StandardErrorPath: 输出 zju-connect 运行日志的目录(用于调试,可不指定)
    • StandardOutPath: 输出 zju-connect 运行日志的目录(用于调试,可不指定)
    • RunAtLoad: 是否开机自启动
    • KeepAlive: 是否后台断开重连

    详细参数配置可参考以下文档:

  5. 移动配置文件至 /Library/LaunchDaemons/ 目录,同时执行以下命令:

    $ cd /Library/LaunchDaemons
    $ sudo chown root:wheel com.zju.connect.plist
  6. 执行以下命令启用服务并设置自启:

    $ sudo launchctl load com.zju.connect.plist
  7. 执行以下命令关闭自启动服务:

    $ sudo launchctl unload com.zju.connect.plist

如需开关服务,可直接在 macOS 系统设置中的后台程序开关 zju-connect。

对于 OpenWrt 系统,可通过 procd init 脚本让 zju-connect 开机自启、后台运行,在代理插件中添加对应本机节点和分流规则即可正常使用。

  1. Release 页面下载对应平台的最新 linux 版本,将可执行文件保存为 /usr/bin/zju-connect 并赋予可执行权限。

  2. 参照仓库中的 config.toml.example,创建配置文件 /etc/back2zju.toml,配置好 socks/http 代理端口,因通过代理插件实现分流,建议将 zju-connect 的配置项 proxy_all 设置为 true

  3. 将以下内容保存为 /etc/init.d/back2zju 并赋予可执行权限:

    #!/bin/sh /etc/rc.common
    
    USE_PROCD=1
    START=60
    STOP=03
    
    PROGRAM="/usr/bin/zju-connect"
    NET_CHECKER="rvpn.zju.edu.cn"
    CONFIG_FILE="/etc/back2zju.toml"
    LOG_FILE="/var/log/back2zju.log"
    
    boot() {
    	ubus -t 10 wait_for network.interface.wan 2>/dev/null
    	sleep 10
    	rc_procd start_service
    }
    
    start_service() {
        ping -c1 ${NET_CHECKER} >/dev/null || ping -c1 ${NET_CHECKER} >/dev/null || return 1
        procd_open_instance
        procd_set_param command /bin/sh -c "${PROGRAM} -config ${CONFIG_FILE} >>${LOG_FILE} 2>&1"
        procd_set_param respawn 3600 5 3
        procd_set_param limits core="unlimited"
        procd_set_param limits nofile="200000 200000"
        procd_set_param file ${CONFIG_FILE}
        procd_close_instance
        logger -p daemon.warn -t back2zju 'Service has been started.'
    }
    
    reload_service() {
        stop
        start
        logger -p daemon.warn -t back2zju 'Service has been restarted.'
    }
  4. 执行以下命令:

    /etc/init.d/back2zju enable
    /etc/init.d/back2zju start

    或通过 OpenWrt LuCi 网页的 系统-启动项 启用并启动 back2zju(也可在此处停用服务)。

    随后 zju-connect 将开始运行,支持开机自启动,其运行日志保存在 /var/log/back2zju.log

  5. 在代理插件中添加对应本机节点和分流规则

    根据在 /etc/back2zju.toml 中的配置,在代理插件中添加本机节点。ip 填写 127.0.0.1,端口号/协议与 /etc/back2zju.toml 保持一致,若设置了 socks 用户名和密码也需要填写。

    然后在对应代理插件中添加分流规则,具体操作略。

    注意事项:

    1. ZJU 校园网使用的内网 IP 段是 10.0.0.0/8,可能需要将此 IP 段从代理插件的直连列表/局域网列表中移除并添加至代理列表。

    2. 请确保使用的 RVPN 服务器与 OpenWrt 直连。若未将 rvpn.zju.edu.cn 配置为直连,此域名可能匹配分流规则与其他 zju.edu.cn 流量一样被发往 zju-connect 代理,这会造成网络异常。

Docker 运行

$ docker run -d --name zju-connect -v $PWD/config.toml:/home/nonroot/config.toml -p 1080:1080 -p 1081:1081 --restart unless-stopped mythologyli/zju-connect

也可以使用 Docker Compose。创建 docker-compose.yml 文件,内容如下:

version: '3'

services:
   zju-connect:
      image: mythologyli/zju-connect
      container_name: zju-connect
      restart: unless-stopped
      ports:
         - 1080:1080
         - 1081:1081
      volumes:
         - ./config.toml:/home/nonroot/config.toml

并在同目录下运行

$ docker compose up -d

参数说明

  • server: SSL VPN 服务端地址,默认为 rvpn.zju.edu.cn

  • port: SSL VPN 服务端端口,默认为 443

  • username: 网络账户。例如:学号

  • password: 网络账户密码

  • disable-server-config: 禁用服务端配置,一般不需要加此参数

  • disable-zju-config: 禁用 ZJU 相关配置,一般不需要加此参数

  • disable-zju-dns: 禁用 ZJU DNS 改用本地 DNS,一般不需要加此参数

  • disable-multi-line: 禁用自动根据延时选择线路。加此参数后,使用 server 参数指定的线路

  • proxy-all: 是否代理所有流量,一般不需要加此参数

  • socks-bind: SOCKS5 代理监听地址,默认为 :1080

  • socks-user: SOCKS5 代理用户名,不填则不需要认证

  • socks-passwd: SOCKS5 代理密码,不填则不需要认证

  • http-bind: HTTP 代理监听地址,默认为 :1081。为 "" 时不启用 HTTP 代理

  • shadowsocks-url: Shadowsocks 服务端 URL。例如:ss://aes-128-gcm:password@server:port。格式参考此处

  • dial-direct-proxy: 当URL未命中RVPN规则,切换到直连时使用代理,常用于与其他代理工具配合的场景,目前仅支持http代理。 例如:http://127.0.0.1:7890",为 "" 时不启用

  • tun-mode: TUN 模式(实验性)。请阅读后文中的 TUN 模式注意事项

  • add-route: 启用 TUN 模式时根据服务端下发配置添加路由

  • dns-ttl: DNS 缓存时间,默认为 3600

  • disable-keep-alive: 禁用定时保活,一般不需要加此参数

  • zju-dns-server: ZJU DNS 服务器地址,默认为 10.10.0.21

  • secondary-dns-server: 当使用 ZJU DNS 服务器无法解析时使用的备用 DNS 服务器,默认为 114.114.114.114。留空则使用系统默认 DNS,但在开启 dns-hijack 时必须设置

  • dns-server-bind: DNS 服务器监听地址,默认为空即禁用。例如,设置为 127.0.0.1:53,则可向 127.0.0.1:53 发起 DNS 请求

  • dns-hijack: 启用 TUN 模式时劫持 DNS 请求,建议在启用 TUN 模式时添加此参数

  • debug-dump: 是否开启调试,一般不需要加此参数

  • tcp-port-forwarding: TCP 端口转发,格式为 本地地址-远程地址,本地地址-远程地址,...,例如 127.0.0.1:9898-10.10.98.98:80,0.0.0.0:9899-10.10.98.98:80。多个转发用 , 分隔

  • udp-port-forwarding: UDP 端口转发,格式为 本地地址-远程地址,本地地址-远程地址,...,例如 127.0.0.1:53-10.10.0.21:53。多个转发用 , 分隔

  • custom-dns: 指定自定义DNS解析结果,格式为 域名:IP,域名:IP,...,例如 www.cc98.org:10.10.98.98,appservice.zju.edu.cn:10.203.8.198。多个解析用 , 分隔

  • custom-proxy-domain: 指定自定义域名使用RVPN代理,格式为 域名,域名,...,例如 nature.com,science.org。多个域名用 , 分隔

  • twf-id: twfID 登录,调试用途,一般不需要加此参数

  • config: 指定配置文件,内容参考 config.toml.example。启用配置文件时其他参数无效

TUN 模式注意事项

  1. 需要管理员权限运行

  2. Windows 系统需要前往 Wintun 官网下载 wintun.dll 并放置于可执行文件同目录下

  3. 为保证 *.zju.edu.cn 解析正确,建议配置 dns-hijack 劫持系统 DNS

  4. macOS 暂不支持通过 TUN 接口访问 10.0.0.0/8 外的地址

计划表

已完成

  • 代理 TCP 流量
  • 代理 UDP 流量
  • SOCKS5 代理服务
  • HTTP 代理服务
  • Shadowsocks 代理服务
  • ZJU DNS 解析
  • ZJU 规则添加
  • 支持 IPv6 直连
  • DNS 缓存加速
  • 自动选择线路
  • TCP 端口转发功能
  • UDP 端口转发功能
  • 通过配置文件启动
  • 定时保活
  • TUN 模式
  • 自动劫持 DNS

To Do

  • Fake IP 模式

贡献者

感谢

zju-connect's People

Contributors

117503445 avatar 6769 avatar aeof avatar cxz66666 avatar githuu5y5u avatar i-pear avatar idawnlight avatar kasperis7 avatar lyc8503 avatar mkqts avatar mythologyli avatar tommyix avatar wjfu99 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

zju-connect's Issues

点击网络诊断没反应,还有unexpected send handshake reply

最新版点击网络诊断没反应,而且之前的问题没有解决
Version: 1.0.0
Windows 11 Version 22H2
2023-09-23 17:18:10 工作模式设置为:RVPN
2023/09/23 17:20:42 Login Request: https://vpn.shou.edu.cn:443/por/login_auth.csp?apiversion=1

2023/09/23 17:20:42 Twf Id: fe970ba6ee081578
2023/09/23 17:20:42 RSA Key: C5622DC9C719567A2F84F19F3C1FAB9C392264AF3FF6D1D7EB40D75D6D2E94245444F54544F3F33A67A90AAC3DB8A21528CA87DB3EB8AA05D22C471C4DB8F9FF9EBD801CE8EF7DB167E3C792D340AAA8DEDCAB4567D5254FB5F681B414BE50C5AC7C494A91D8C3AAD4EFEB7F28717F17844B2B2190A6A890AE8C180A9B72BCFD7325D077D37C46CF6FCB56B0BB0255BD57193DBA4D0F005053B3C560E6ADD9BC06D0EE1F03E86E5233D2F71727D56E3ED076B66BC980A145582591DFE0B381FC84542A9276B8FB6D6D7574A720C7F288B22C0CAEFF6F15E217CCDF0F990A0981F3A23540627B372AB5B6F20800DD9E1546804E20EA68962CDA3A39423F9DF68F

2023/09/23 17:20:42 RSA Exp: 65537
2023/09/23 17:20:42 WARNING: No CSRF Code Match. Maybe you're connecting to an older server? Continue anyway...
2023/09/23 17:20:42 Login Request: https://vpn.shou.edu.cn:443/por/login_psw.csp?anti_replay=1&encrypt=1&type=cs

2023/09/23 17:20:42 No NextAuth found.
2023/09/23 17:20:42 Web Login process done.

2023/09/23 17:20:42 ECAgent Request: /por/conf.csp & /por/rclist.csp

2023/09/23 17:20:42 Server Session ID: bc3af6dc1983b750dd375d160333cf61cffaec051deadf8a77e99bef0cd7f383

2023/09/23 17:20:42 Parsed /por/conf.csp

2023/09/23 17:20:43 Parsed /por/rclist.csp
2023/09/23 17:20:43 try parsing by goXml

2023/09/23 17:20:43 Progress: 0/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 0/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 0/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 1/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 1/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 2/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 2/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 3/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 3/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 3/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 4/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 4/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 5/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 5/100 (ResourceList.Rcs)

2023/09/23 17:20:43 Progress: 6/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 6/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 7/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 7/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 7/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 8/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 8/100 (ResourceList.Rcs)

2023/09/23 17:20:43 Progress: 9/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 9/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 10/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 10/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 11/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 11/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 11/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 12/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 12/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 13/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 13/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 14/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 14/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 14/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 15/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 15/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 16/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 16/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 17/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 17/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 18/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 18/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 18/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 19/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 19/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 20/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 20/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 21/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 21/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 22/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 22/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 22/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 23/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 23/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 24/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 24/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 25/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 25/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 25/100 (ResourceList.Rcs)

2023/09/23 17:20:43 Progress: 26/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 26/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 27/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 27/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 28/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 28/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 29/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 29/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 29/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 30/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 30/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 31/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 31/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 32/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 32/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 33/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 33/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 33/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 34/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 34/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 35/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 35/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 36/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 36/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 37/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 37/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 37/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 38/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 38/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 39/100 (ResourceList.Rcs)

2023/09/23 17:20:43 Progress: 39/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 40/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 40/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 40/100 (ResourceList.Rcs)

2023/09/23 17:20:43 Progress: 41/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 41/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 42/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 42/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 43/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 43/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 44/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 44/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 44/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 45/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 45/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 46/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 46/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 47/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 47/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 48/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 48/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 48/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 49/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 49/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 50/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 50/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 51/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 51/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 51/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 52/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 52/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 53/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 53/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 54/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 54/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 55/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 55/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 55/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 56/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 56/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 57/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 57/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 58/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 58/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 59/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 59/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 59/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 60/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 60/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 61/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 61/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 62/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 62/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 62/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 63/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 63/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 64/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 64/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 65/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 65/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 66/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 66/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 66/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 67/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 67/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 68/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 68/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 69/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 69/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 70/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 70/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 70/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 71/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 71/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 72/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 72/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 73/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 73/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 74/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 74/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 74/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 75/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 75/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 76/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 76/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 77/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 77/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 77/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 78/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 78/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 79/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 79/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 80/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 80/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 81/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 81/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 81/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 82/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 82/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 83/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 83/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 84/100 (ResourceList.Rcs)

2023/09/23 17:20:43 Progress: 84/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 85/100 (ResourceList.Rcs)

2023/09/23 17:20:43 Progress: 85/100 (ResourceList.Rcs)

2023/09/23 17:20:43 Progress: 85/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 86/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 86/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 87/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 87/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 88/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 88/100 (ResourceList.Rcs)

2023/09/23 17:20:43 Progress: 88/100 (ResourceList.Rcs)

2023/09/23 17:20:43 Progress: 89/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 89/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 90/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 90/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 91/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 91/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 92/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 92/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 92/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 93/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 93/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 94/100 (ResourceList.Rcs)

2023/09/23 17:20:43 Progress: 94/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 95/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 95/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 96/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 96/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 96/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 97/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 97/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 98/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 98/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 99/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Progress: 99/100 (ResourceList.Rcs)
2023/09/23 17:20:43 Parsed 865 domain rules
2023/09/23 17:20:43 Parsed 5 IPv4 rules
2023/09/23 17:20:43 Parsed 95 DNS rules

2023/09/23 17:20:43 socket: connected to: 58.246.161.76:443
2023/09/23 17:20:43 tls: connected to: 58.246.161.76:443

2023/09/23 17:20:43 Login success, your IP: 172.18.214.105

2023/09/23 17:20:43 HTTP server listening on 127.0.0.1:1081
2023/09/23 17:20:43 SOCKS5 server listening on 127.0.0.1:1080

2023/09/23 17:20:43 socket: connected to: 58.246.161.76:443
2023/09/23 17:20:43 tls: connected to: 58.246.161.76:443
2023/09/23 17:20:43 socket: connected to: 58.246.161.76:443
2023/09/23 17:20:43 tls: connected to: 58.246.161.76:443

2023/09/23 17:20:53 KeepAlive: lookup www.baidu.com on 192.168.5.1:53: read udp 172.18.214.105:45740: i/o timeout

2023/09/23 17:21:53 Error occurred while send, retrying: write tcp 192.168.5.59:55983->58.246.161.76:443: wsasend: An established connection was aborted by the software in your host machine.

2023/09/23 17:21:53 socket: connected to: 58.246.161.76:443
2023/09/23 17:21:53 tls: connected to: 58.246.161.76:443

2023/09/23 17:21:53 Error occurred while send, retrying: unexpected send handshake reply

2023/09/23 17:21:53 socket: connected to: 58.246.161.76:443
2023/09/23 17:21:53 tls: connected to: 58.246.161.76:443

2023/09/23 17:21:53 Error occurred while send, retrying: unexpected send handshake reply

2023/09/23 17:21:53 socket: connected to: 58.246.161.76:443
2023/09/23 17:21:53 tls: connected to: 58.246.161.76:443

2023/09/23 17:21:53 Error occurred while send, retrying: unexpected send handshake reply

2023/09/23 17:21:53 socket: connected to: 58.246.161.76:443
2023/09/23 17:21:53 tls: connected to: 58.246.161.76:443

2023/09/23 17:21:53 Error occurred while send, retrying: unexpected send handshake reply

panic: send retry limit exceeded.

goroutine 114 [running]:
github.com/mythologyli/zju-connect/core.StartProtocol.func2()
github.com/mythologyli/zju-connect/core/protocol.go:245 +0x14b
created by github.com/mythologyli/zju-connect/core.StartProtocol in goroutine 1
github.com/mythologyli/zju-connect/core/protocol.go:248 +0x136

2023-09-23 17:21:53 RVPN 断开!

无法使用ProxyJump将127.0.0.1:1080作为ssh跳板机

用ProxyCommand可以在校外ssh校内主机:

Host lab
    Hostname <10.x.x.x>
    Port <port>
    User <user>
    ProxyCommand nc -x 127.0.0.1:1080 %h %p

但是使用ProxyJump不行:

Host lab
    Hostname <10.x.x.x>
    Port <port>
    User <user>
    ProxyJump <localuser>@127.0.0.1:1080

ssh命令没有输出(卡在那里),zju-connect也没有输出,只有当我ctrl C终止ssh命令的时候,zju-connect会输出一行

2023/02/08 19:06:25 [E]: server: unexpected EOF

ssh版本为9.1,zju-connect版本为0.1

Docker无法使用

使用命令行导入到openwrt的docker里,默认会新建一个config.toml的文件夹,删除这个文件夹改成配置文件,或者在文件夹里放一个同名的配置文件都无法成功连接上(可以启动,但是不会形成代理服务器)

校外VPN连接访问服务器

设置了端口转发,此前是能够通过一样的端口转发tcp连接校内服务器的,但是这两天通过转发的本地端口ssh的时候出现
ep.GetRemoteAddress() failed: endpoint not connected
想问一下有什么原因吗

后台20分钟左右没有活动连接自动断开

目前多次测试发现,连接上vpn服务器正常使用后,当vpn后台无任何活动连接超过20分钟左右就会出现以下error。不太清楚这个是bug还是什么,重连后可以恢复正常。(华中科技大学vpn测试,使用原版Easierconnect存在同样情况)

image

image

估计使用自动重连脚本可以实现自动重连,但目测会导致ssh连接直接断开,强迫症不太能接受。不知道大佬能不能修复一下,或者告诉一下原因或修复问题的方向,打算尝试折腾一下(虽然不懂go语言),谢谢。

无法关闭http&socks代理


软件版本
v0.4.1

使用环境
CentOS 8
服务端地址
****:443

故障描述 (建议结合图片说明)
查看代码发现,http代理和sockts代理无法关闭(只想保留端口转发)

重现方法
https://github.com/Mythologyli/zju-connect/blob/9b799a4f87074778eb62a3c7da88e0addd2aed2d/core/http.go#L64C27-L64C33
无控制开关

预期行为
根据socks_bind,http_bind配置为空则不开启监听

日志

在此粘贴

配置文件或启动参数 (请去除敏感信息)

在此粘贴

[BUG] ParseServConfig must be true

I try to set disable-server-config to true, but get fatal at core.QueryIp:L108

runtime/debug.Stack()
        C:/Program Files/Go/src/runtime/debug/stack.go:24 +0x65
runtime/debug.PrintStack()
        C:/Program Files/Go/src/runtime/debug/stack.go:16 +0x19
github.com/mythologyli/zju-connect/core.QueryIp({0xc00003a460?, 0x2?}, 0xc00002ed80, 0x0)
        C:/Users/ChenXuzheng/Desktop/ZJU-Connect/core/protocol.go:108 +0x258
github.com/mythologyli/zju-connect/core.(*EasyConnectClient).GetClientIp(0xc000330080)
        C:/Users/ChenXuzheng/Desktop/ZJU-Connect/core/EasyConnectClient.go:219 +0x38
github.com/mythologyli/zju-connect/core.StartClient({0xc0002988c0?, 0x3?}, 0x0?, {0x11841d3, 0xa}, {0x1186d0c, 0xc}, {0x0, 0x0})
        C:/Users/ChenXuzheng/Desktop/ZJU-Connect/core/EasyConnectClient.go:122 +0x652
github.com/mythologyli/zju-connect/core.StartClient({0x1189bda?, 0xc0000881f0?}, 0xc0001c0150?, {0x11841d3, 0xa}, {0x1186d0c, 0xc}, {0x0, 0x0})
        C:/Users/ChenXuzheng/Desktop/ZJU-Connect/core/EasyConnectClient.go:110 +0x5db
main.main()
        C:/Users/ChenXuzheng/Desktop/ZJU-Connect/main.go:103 +0xd65
2023/02/07 18:12:29 unexpected query ip reply

After checking the code logic, I found the reason is DOESN'T do a request to /por/rclist.csp

So there are two solutions:

  • remove this flag, always set disable-server-config to false
  • do a useless request to /por/rclist.csp even set disable-server-config to true

[Error report] Received SIGSEGV when starting program

When starting the program with command

/opt/zju-connect -config /etc/zju-connect/config.toml

I received runtime error:

2023/03/18 23:11:02 HTTP server listening on :1081
2023/03/18 23:11:02 Port forwarding (udp): 127.0.0.1:53 <- 10.10.0.21:53
listen udp 127.0.0.1:53: bind: permission denied
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x8700b9]

goroutine 99 [running]:
github.com/mythologyli/zju-connect/core.(*udpForward).StartUdpForward(0x0)
	github.com/mythologyli/zju-connect/core/udp_forwarding.go:88 +0x99
github.com/mythologyli/zju-connect/core.ServeUdpForwarding({0xc000038810?, 0xd?}, {0xc000038820?, 0x0?}, 0x0?)
	github.com/mythologyli/zju-connect/core/udp_forwarding.go:46 +0x2a
github.com/mythologyli/zju-connect/core.(*EasyConnectClient).ServeForwarding(0xc0001fc380, {0xc0000387f6?, 0x0?}, {0xc000038810, 0xc}, {0xc000038820, 0xd})
	github.com/mythologyli/zju-connect/core/EasyConnectClient.go:241 +0x1eb
created by github.com/mythologyli/zju-connect/core.StartClient
	github.com/mythologyli/zju-connect/core/EasyConnectClient.go:138 +0xc25
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x50 pc=0x870438]

goroutine 113 [running]:
github.com/mythologyli/zju-connect/core.(*udpForward).janitor(0x0)
	github.com/mythologyli/zju-connect/core/udp_forwarding.go:100 +0x38
created by github.com/mythologyli/zju-connect/core.(*udpForward).StartUdpForward
	github.com/mythologyli/zju-connect/core/udp_forwarding.go:85 +0x71

Software version: v0.2.0

zju-connect zju dns解析挂了

今天下午时候程序报错,怀疑是rvpn server端加了什么限制

Resolve IPv4 addr failed using ZJU DNS: cspo.zju.edu.cn, using local DNS instead.

连不上校园网

提交之前

在提交报告之前,请确保:

确认无误后,请删除下方横线及以上内容。之后,请修改下方的模版并提交报告


软件版本
v0.7.0

使用环境
MacBook Pro Docker

服务端地址
rvpn.zju.edu.cn:443

故障描述 (建议结合图片说明)
image

无法连接校园网,cc98 上不了。

重现方法

预期行为
能上cc98

日志

2024/04/15 03:48:12 Start ZJU Connect v0.7.0
2024/04/15 03:48:12 Request: https://rvpn.zju.edu.cn:443/por/login_auth.csp?apiversion=1
2024/04/15 03:48:13 TWFID: 23942fa75d262cab
2024/04/15 03:48:13 RSA key: A41BEB76968C21EA9174095B98E1856A54EE005C6CE9A1B13D3C8EA72F71FACBA6D92DADCACE91DEA27227A311DC48FA2B90E4ACA003D8A48D694A8E56517D5CABC4B9A00BAD3B5010430C968916155E746D14C01D31CF155B906389C906F9B12B942639FD3B3E31EFB25CE142EFB4C4DB95686750685A6866FEFD6A2A716A92D837061A0070AEF6C8D7FB6D5ECD03AC39E0FF32EFDB644639E279382799F34E75B86BBB3D8859A7FA5E63B4FF56CFD59035C71A523FE34CC97C78426B7E73A449356E4B21DBF45E6CF1182DC5999D9E15CEEE3A6DC22BAC3BDBA094CDAACF198315C24A1927BCB98CEE77530C0B43ED0784F139D1D87C89E33B39439C7B7F99
2024/04/15 03:48:13 RSA exp: 65537
2024/04/15 03:48:13 Warning: No CSRF rand code
2024/04/15 03:48:13 Request: https://rvpn.zju.edu.cn:443/por/login_psw.csp?anti_replay=1&encrypt=1&type=cs

配置文件或启动参数 (请去除敏感信息)

username = ""
password = ""

# Advanced settings
server_address = "rvpn.zju.edu.cn"
server_port = 443
disable_server_config = false
disable_zju_config = false
disable_zju_dns = false
disable_multi_line = false
proxy_all = false
socks_bind = ":1080"
socks_user = ""
socks_passwd = ""
http_bind = ":1081"
dns_ttl = 3600
disable_keep_alive = false
zju_dns_server = "10.10.0.21"
debug_dump = false

openwrt中passwall的dns配置 & 指定日志与配置热重载

刚在OpenWrt上跑起来,有几个小问题

  1. 似乎不能配置日志输出位置,会占用shell无法输入
  2. 没找到断开连接/停止程序的参数

虽然可以通过linux系统的输出重定向、kill解决问题,还是不太方便,希望能支持手动加参数设置。

然后,我是用zju-connect连上RVPN,在passwall中连接本机socks节点,然后将zju域名分流至该节点,但相关域名DNS解析使用的还是passwall中设置的代理dns,请问应该如何解决呢?

在dialDirect中引入proxy是否可行

随着zjurule已经成为过去式,把zju-connect放到cfw等一系列代理的下游已经不再容易,或许我们可以把zju-connect放到cfw的上游,通过dialDirect中引入cfw等代理的http proxy/socks proxy,将用户的系统代理设置成zju-connect,这样也许更加方便。

对几类用户的影响:

  • 纯tun用户:无影响
  • tun+http/socks proxy用户:方便其与其他下游代理配合
  • 纯http/socks proxy用户:同上

[Enhancement] 支持输入登录验证码

论坛有用户反映无法正常登录,登录时返回提示 The characters are incorrect or has expired!。很可能需要输入验证码。

该用户之前频繁错误密码登录被判定为 IP 暴力登录,可能已触发风控。

curl https://rvpn.zju.edu.cn/por/login_auth.csp?apiversion=1 发现存在 <RndImg>0</RndImg> <!-- image check --> 字段。需要输入验证码的用户此段应该为验证码图片链接。

目前主要问题是没有合适账户进行测试。

linux 连接时报错 WARNING: No CSRF Code Match. Maybe you're connecting to an older server? Continue anyway...

有没有同学遇到过这个问题,请问怎么解决?

2023/05/07 09:16:40 Login Request: [https://rvpn.zju.edu.cn:443/por/login_auth.csp?apiversion=1](https://rvpn.zju.edu.cn/por/login_auth.csp?apiversion=1)
2023/05/07 09:16:42 Twf Id: feb91775e97bd5c2
2023/05/07 09:16:42 RSA Key: BA32A08AC812E30BFA52EEAB47B288F400DCDD44DD5E58D3BE79009B430BF7936251F1596BB9F874B27A49FC47F921EC5DDCD7FBBADED86032E4BE8E594C164EF3FC2FAB76B282544DF6173878AB493C5A69CCF1664C1CBDCAE79CEB6E2D8D0580F17CB11A9E829A489FE5288748DA9301DAF5BCACE0BA4CDF3BBDC7BC670F6C9BD4A35581C8071E89A0DFDA471B43C2A4E2EF20955960B0A0C0E53D3A176BE80EED564F90557DC15732E757821F2934D60B804CE6305B11B5011E9407707B51D59C7CB0AB4A29BE3EB3CE542847622AB49D157AFE3FC8D86D210B548BB81E8CFF7819B42AAAD6B10B3737670230F369BBDBDAAAB332354FBE653F3381
2023/05/07 09:16:42 RSA Exp: 65537
2023/05/07 09:16:42 WARNING: No CSRF Code Match. Maybe you're connecting to an older server? Continue anyway...
2023/05/07 09:16:42 Login Request: [https://rvpn.zju.edu.cn:443/por/login_psw.csp?anti_replay=1&encrypt=1&type=cs](https://rvpn.zju.edu.cn/por/login_psw.csp?anti_replay=1&encrypt=1&type=cs)
2023/05/07 09:16:42 No NextAuth found.
goroutine 1 [running]:
runtime/debug.Stack()
	runtime/debug/stack.go:24 +0x65
runtime/debug.PrintStack()
	runtime/debug/stack.go:16 +0x19
github.com/mythologyli/zju-connect/core.WebLogin({0xc00014c108?, 0xc0000b7a98?}, {0xc0000ae3a0, 0xa}, {0xc0000ae3b0, 0xa})
	github.com/mythologyli/zju-connect/core/web_login.go:167 +0x157e
github.com/mythologyli/zju-connect/core.(*EasyConnectClient).Login(0xc00017c300, {0xc0000ae3a0?, 0xc0000b7bf8?}, {0xc0000ae3b0?, 0x2?})
	github.com/mythologyli/zju-connect/core/EasyConnectClient.go:158 +0x91
github.com/mythologyli/zju-connect/core.StartClient({0xc00014c0c0?, 0x0?}, 0x1?, {0xc0000ae3a0, 0xa}, {0xc0000ae3b0, 0xa}, {0x0, 0x0})
	github.com/mythologyli/zju-connect/core/EasyConnectClient.go:72 +0x18a
main.main()
	github.com/mythologyli/zju-connect/main.go:200 +0xbf
2023/05/07 09:42 Login FAILED: <?xml version="1.0" encoding="utf-8"?><Auth><Result>0</Result> <EnableMAM>0</EnableMAM><SuportMDM>0</SuportMDM><CurAuth>1</CurAuth><NextAuth>-1</NextAuth><AuthInfo><![CDATA[]]></AuthInfo><Note><![CDATA[Invalid username or password!]]></Note><ChallengeMsg><![CDATA[]]></ChallengeMsg><SmsIsStillValid>0</SmsIsStillValid><Phone><![CDATA[]]></Phone><CurPhone><![CDATA[]]></CurPhone><SmsSendType><![CDATA[HTTP]]></SmsSendType><mdmEnable>0</mdmEnable><mdmUqid></mdmUqid><MdmUrl>https://:0</MdmUrl><RootRule>-1</RootRule></Auth>

期待能提供ssh隧道代理功能


软件版本
v0.4.0

使用环境
Windows 10 x64

服务端地址
****:443

功能请求描述 (建议结合图片说明)
#9 已经提出过类似需求,确实现在可以用端口映射功能解决。但每次都需要映射也确实麻烦。期望能提供ssh隧道功能。
image

恢复 AGPLv3 许可证

感谢 @Mythologyli 继续维护这个项目。在 lyc8503/EasierConnect@78f5625 中,原作者“撤回了 AGPLv3”,事实上 AGPLv3 是无法撤回的:

  1. 版权所有者可以以他希望的许可证发布他的软件,但是对于之前使用 AGPLv3 发布的版本授予用户的权利,作者无法撤回。
  2. lyc8503/EasierConnect@78f5625 之前 EasierConnect 已经经过其他人的贡献,有其他人的代码合并进仓库中。而原作者如果希望使用与 AGPLv3 不兼容的授权发布新版本,则要么移除这部分代码,要么得到这部分代码的版权所有者(贡献者)的允许或者版权转让,所以其实 lyc8503/EasierConnect@78f5625 的版本是有许可证问题的。

此外,无许可证仓库没有明确赋予用户权利,甚至使用、贡献该项目也并不是被明确授权的。因此我建议恢复 AGPLv3 许可证(revert 7b4df3f,甚至通过 rebase 将 7b4df3f 去除),同时这(更改回 AGPLv3 许可证)还需要 @cxz66666 @kasperis7 (在无许可证下提交代码的贡献者)的同意。

以上只是我的一些愚见,再次感谢贡献者们维护这个项目。

HTTP 代理可能存在问题

https://www.cc98.org/topic/5708120

当使用 zju-connect 内置的 http 代理时,进行统一身份认证时可能出现界面加载问题:
image

使用学在浙大测试发现,该现象不是每次都出现,反复登录-注销有几率触发。有时表现为界面加载不全,有时表现为无限重定向;使用 Clash + 内置 SOCKS5 代理,不会出现此现象

目前原因未知,怀疑 http 代理的实现可能存在问题

使用同一账号登录多个zju-connect实例,连接异常断开报错EOF

软件版本
v0.4.0

使用环境
Docker (arm64 macOS)

服务端地址
rvpn.zju.edu.cn:443

故障描述 (建议结合图片说明)

启动后一段时间panic

重现方法

docker run

预期行为

日志

2023/11/10 07:15:39 Progress: 98/100 (ResourceList.Rcs)
2023/11/10 07:15:39 Progress: 99/100 (ResourceList.Rcs)
2023/11/10 07:15:39 Progress: 99/100 (ResourceList.Rcs)
2023/11/10 07:15:39 Parsed 629 domain rules
2023/11/10 07:15:39 Parsed 18 IPv4 rules
2023/11/10 07:15:39 Parsed 520 DNS rules
2023/11/10 07:15:39 socket: connected to:  61.175.193.50:443
2023/11/10 07:15:39 tls: connected to:  61.175.193.50:443
2023/11/10 07:15:39 Login success, your IP: 10.190.65.181
2023/11/10 07:15:39 HTTP server listening on :1081
2023/11/10 07:15:39 Port forwarding (tcp): 127.0.0.1:9898 <- 10.10.98.98:80
2023/11/10 07:15:39 Port forwarding (udp): 127.0.0.1:1053 <- 10.10.0.21:53
2023/11/10 07:15:39 Custom DNS appservice.zju.edu.cn -> 10.203.8.198
2023/11/10 07:15:39 Custom DNS www.cc98.org -> 10.10.98.98
2023/11/10 07:15:39 Port forwarding (tcp): 127.0.0.1:9899 <- 10.10.98.98:80
2023/11/10 07:15:39 SOCKS5 server listening on :1080
2023/11/10 07:15:39 socket: connected to:  61.175.193.50:443
2023/11/10 07:15:39 tls: connected to:  61.175.193.50:443
2023/11/10 07:15:39 socket: connected to:  61.175.193.50:443
2023/11/10 07:15:39 tls: connected to:  61.175.193.50:443
2023/11/10 07:15:49 KeepAlive: lookup www.baidu.com on 192.168.65.7:53: read udp 10.190.65.181:65243: i/o timeout
2023/11/10 07:15:50 Error occurred while receiving, retrying: EOF
2023/11/10 07:15:50 socket: connected to:  61.175.193.50:443
2023/11/10 07:15:50 tls: connected to:  61.175.193.50:443
2023/11/10 07:15:50 Error occurred while receiving, retrying: unexpected recv handshake reply
2023/11/10 07:15:50 socket: connected to:  61.175.193.50:443
2023/11/10 07:15:50 tls: connected to:  61.175.193.50:443
2023/11/10 07:15:50 Error occurred while receiving, retrying: unexpected recv handshake reply
2023/11/10 07:15:50 socket: connected to:  61.175.193.50:443
2023/11/10 07:15:50 tls: connected to:  61.175.193.50:443
2023/11/10 07:15:50 Error occurred while receiving, retrying: unexpected recv handshake reply
2023/11/10 07:15:50 socket: connected to:  61.175.193.50:443
2023/11/10 07:15:50 tls: connected to:  61.175.193.50:443
2023/11/10 07:15:50 Error occurred while receiving, retrying: unexpected recv handshake reply
panic: receive retry limit exceeded.

goroutine 67 [running]:
github.com/mythologyli/zju-connect/core.StartProtocol.func1()
	github.com/mythologyli/zju-connect/core/protocol.go:231 +0x105
created by github.com/mythologyli/zju-connect/core.StartProtocol
	github.com/mythologyli/zju-connect/core/protocol.go:234 +0xd2

配置文件或启动参数 (请去除敏感信息)

docker run --name zju-connect -v $PWD/config.toml:/home/nonroot/config.toml -p 1080:1080 -p 1081:1081 mythologyli/zju-connect
# Advanced settings
server_address = "rvpn.zju.edu.cn"
server_port = 443
disable_server_config = false
disable_zju_config = false
disable_zju_dns = false
disable_multi_line = false
proxy_all = true
socks_bind = ":1080"
socks_user = ""
socks_passwd = ""
http_bind = ":1081"
dns_ttl = 3600
disable_keep_alive = false
zju_dns_server = "10.10.0.21"
debug_dump = false

# Port forwarding
port_forwarding = [
    { network_type = "tcp", bind_address = "127.0.0.1:9898", remote_address = "10.10.98.98:80" },
    { network_type = "tcp", bind_address = "127.0.0.1:9899", remote_address = "10.10.98.98:80" },
    { network_type = "udp", bind_address = "127.0.0.1:1053", remote_address = "10.10.0.21:53" }
]

custom_dns = [
    { host_name = "appservice.zju.edu.cn", ip = "10.203.8.198"},
    { host_name = "www.cc98.org", ip = "10.10.98.98"}
]

Github Actions 优化

目前所有内容都挤在一个 main.yml 里,造成:

  • commit/PR 时 CI 运行的时间过长
  • PR 时的自动检查失败
  • 非 main 分支的 commit 也会向 DockerHub 提交镜像

考虑将 main.yml 拆分为几个不同的任务,设置不同的触发条件

对remoteResolver并发处理相同请求的优化

同时对的具有相同域名的多个请求,目前remoteResolver(TCP/UDP)都会走网络进行相同的解析,解析完成后设置缓存,如果能做到只有第一个请求走网络,其他请求先挂起协程,等第一个返回后,再从缓存中读的话,对日志的可读性、程序整体性能的表现都会更好

GUI 版 报错

2023/09/21 11:17:58 Login Request: https://vpn.shou.edu.cn:443/por/login_auth.csp?apiversion=1

2023/09/21 11:17:58 Twf Id: 7101f04fe61b52bb
2023/09/21 11:17:58 RSA Key: C5622DC9C719567A2F84F19F3C1FAB9C392264AF3FF6D1D7EB40D75D6D2E94245444F54544F3F33A67A90AAC3DB8A21528CA87DB3EB8AA05D22C471C4DB8F9FF9EBD801CE8EF7DB167E3C792D340AAA8DEDCAB4567D5254FB5F681B414BE50C5AC7C494A91D8C3AAD4EFEB7F28717F17844B2B2190A6A890AE8C180A9B72BCFD7325D077D37C46CF6FCB56B0BB0255BD57193DBA4D0F005053B3C560E6ADD9BC06D0EE1F03E86E5233D2F71727D56E3ED076B66BC980A145582591DFE0B381FC84542A9276B8FB6D6D7574A720C7F288B22C0CAEFF6F15E217CCDF0F990A0981F3A23540627B372AB5B6F20800DD9E1546804E20EA68962CDA3A39423F9DF68F
2023/09/21 11:17:58 RSA Exp: 65537
2023/09/21 11:17:58 WARNING: No CSRF Code Match. Maybe you're connecting to an older server? Continue anyway...
2023/09/21 11:17:58 Login Request: https://vpn.shou.edu.cn:443/por/login_psw.csp?anti_replay=1&encrypt=1&type=cs

2023/09/21 11:17:58 No NextAuth found.
2023/09/21 11:17:58 Web Login process done.

2023/09/21 11:17:58 ECAgent Request: /por/conf.csp & /por/rclist.csp

2023/09/21 11:17:58 Server Session ID: 48bcd60083c0e921136f965138b7589941a14585e39c3b388c074d47f5827ca3

2023/09/21 11:17:58 Parsed /por/conf.csp

2023/09/21 11:17:58 Parsed /por/rclist.csp
2023/09/21 11:17:58 try parsing by goXml
2023/09/21 11:17:58 Progress: 0/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 0/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 0/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 1/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 1/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 2/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 2/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 3/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 3/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 3/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 4/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 4/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 5/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 5/100 (ResourceList.Rcs)

2023/09/21 11:17:58 Progress: 6/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 6/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 7/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 7/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 7/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 8/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 8/100 (ResourceList.Rcs)

2023/09/21 11:17:58 Progress: 9/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 9/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 10/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 10/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 11/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 11/100 (ResourceList.Rcs)

2023/09/21 11:17:58 Progress: 11/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 12/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 12/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 13/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 13/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 14/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 14/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 14/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 15/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 15/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 16/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 16/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 17/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 17/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 18/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 18/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 18/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 19/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 19/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 20/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 20/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 21/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 21/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 22/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 22/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 22/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 23/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 23/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 24/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 24/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 25/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 25/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 25/100 (ResourceList.Rcs)

2023/09/21 11:17:58 Progress: 26/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 26/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 27/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 27/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 28/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 28/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 29/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 29/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 29/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 30/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 30/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 31/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 31/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 32/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 32/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 33/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 33/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 33/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 34/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 34/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 35/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 35/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 36/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 36/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 37/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 37/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 37/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 38/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 38/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 39/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 39/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 40/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 40/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 40/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 41/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 41/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 42/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 42/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 43/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 43/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 44/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 44/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 44/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 45/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 45/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 46/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 46/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 47/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 47/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 48/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 48/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 48/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 49/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 49/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 50/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 50/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 51/100 (ResourceList.Rcs)

2023/09/21 11:17:58 Progress: 51/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 51/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 52/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 52/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 53/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 53/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 54/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 54/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 55/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 55/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 55/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 56/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 56/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 57/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 57/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 58/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 58/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 59/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 59/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 59/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 60/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 60/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 61/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 61/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 62/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 62/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 62/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 63/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 63/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 64/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 64/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 65/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 65/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 66/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 66/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 66/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 67/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 67/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 68/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 68/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 69/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 69/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 70/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 70/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 70/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 71/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 71/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 72/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 72/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 73/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 73/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 74/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 74/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 74/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 75/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 75/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 76/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 76/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 77/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 77/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 77/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 78/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 78/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 79/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 79/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 80/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 80/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 81/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 81/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 81/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 82/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 82/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 83/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 83/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 84/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 84/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 85/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 85/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 85/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 86/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 86/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 87/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 87/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 88/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 88/100 (ResourceList.Rcs)

2023/09/21 11:17:58 Progress: 88/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 89/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 89/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 90/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 90/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 91/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 91/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 92/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 92/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 92/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 93/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 93/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 94/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 94/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 95/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 95/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 96/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 96/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 96/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 97/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 97/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 98/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 98/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 99/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Progress: 99/100 (ResourceList.Rcs)
2023/09/21 11:17:58 Parsed 865 domain rules
2023/09/21 11:17:58 Parsed 5 IPv4 rules
2023/09/21 11:17:58 Parsed 95 DNS rules

2023/09/21 11:17:58 socket: connected to: 58.246.161.76:443
2023/09/21 11:17:58 tls: connected to: 58.246.161.76:443

2023/09/21 11:17:58 Login success, your IP: 172.18.217.155

2023/09/21 11:17:58 SOCKS5 server listening on 127.0.0.1:1080
2023/09/21 11:17:58 HTTP server listening on 127.0.0.1:1081

2023/09/21 11:17:58 socket: connected to: 58.246.161.76:443
2023/09/21 11:17:58 tls: connected to: 58.246.161.76:443
2023/09/21 11:17:58 socket: connected to: 58.246.161.76:443

2023/09/21 11:17:58 tls: connected to: 58.246.161.76:443

2023/09/21 11:18:08 KeepAlive: lookup www.baidu.com on 192.168.5.1:53: read udp 172.18.217.155:32481: i/o timeout

2023/09/21 11:18:10 Error occurred while receiving, retrying: EOF

2023/09/21 11:18:10 socket: connected to: 58.246.161.76:443
2023/09/21 11:18:10 tls: connected to: 58.246.161.76:443

2023/09/21 11:18:10 Error occurred while receiving, retrying: unexpected recv handshake reply

2023/09/21 11:18:10 socket: connected to: 58.246.161.76:443
2023/09/21 11:18:10 tls: connected to: 58.246.161.76:443

2023/09/21 11:18:10 Error occurred while receiving, retrying: unexpected recv handshake reply

2023/09/21 11:18:10 socket: connected to: 58.246.161.76:443
2023/09/21 11:18:10 tls: connected to: 58.246.161.76:443

2023/09/21 11:18:10 Error occurred while receiving, retrying: unexpected recv handshake reply

2023/09/21 11:18:10 socket: connected to: 58.246.161.76:443
2023/09/21 11:18:10 tls: connected to: 58.246.161.76:443

2023/09/21 11:18:10 Error occurred while receiving, retrying: unexpected recv handshake reply

panic: receive retry limit exceeded.

goroutine 60 [running]:

github.com/mythologyli/zju-connect/core.StartProtocol.func1()
github.com/mythologyli/zju-connect/core/protocol.go:231 +0x105
created by github.com/mythologyli/zju-connect/core.StartProtocol
github.com/mythologyli/zju-connect/core/protocol.go:234 +0xd2

希望能加入自动重拨的功能

我把zju-connect挂到nas里了,但现在每隔6-8小时会断线,断线后就没法自动重拨,总是要手动去重新拨号,不知道有没有可能解决这个问题,之前用docker-easyconnect的时候是可以自动重拨的。

与Clash配合

有大佬能指路吗?我想要让Clash把需要的流量丢到1080端口上。

endpoint not connected

在校外启动了 zju-connect 服务之后 ssh 连接校内服务器,出现如下报错
ep.GetRemoteAddress() failed: endpoint not connected
请问是什么问题?

● zju-connect.service - ZJU Connect
Loaded: loaded (/lib/systemd/system/zju-connect.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2023-09-27 16:38:28 CST; 1h 51min ago
Main PID: 225 (zju-connect)
Tasks: 11 (limit: 19019)
Memory: 26.6M
CGroup: /system.slice/zju-connect.service
└─225 /opt/zju-connect -config /etc/zju-connect/config.toml

Sep 27 18:24:40 ThinkBook16pYGY zju-connect[225]: 2023/09/27 18:24:40 KeepAlive: OK
Sep 27 18:25:40 ThinkBook16pYGY zju-connect[225]: 2023/09/27 18:25:40 KeepAlive: OK
Sep 27 18:26:40 ThinkBook16pYGY zju-connect[225]: 2023/09/27 18:26:40 KeepAlive: OK
Sep 27 18:27:40 ThinkBook16pYGY zju-connect[225]: 2023/09/27 18:27:40 KeepAlive: OK
Sep 27 18:28:40 ThinkBook16pYGY zju-connect[225]: 2023/09/27 18:28:40 KeepAlive: OK
Sep 27 18:29:40 ThinkBook16pYGY zju-connect[225]: 2023/09/27 18:29:40 KeepAlive: OK
Sep 27 18:29:40 ThinkBook16pYGY zju-connect[225]: 2023/09/27 18:29:40 10.214.199.98:2333 -> PROXY
Sep 27 18:29:40 ThinkBook16pYGY zju-connect[225]: W0927 18:29:40.385609 225 gonet.go:457] ep.GetRemoteAddress() failed: endpoint not connected
Sep 27 18:29:40 ThinkBook16pYGY zju-connect[225]: W0927 18:29:40.386050 225 gonet.go:457] ep.GetRemoteAddress() failed: endpoint not connected
Sep 27 18:29:40 ThinkBook16pYGY zju-connect[225]: 2023/09/27 18:29:40 [E]: server: readfrom tcp 127.0.0.1:1080->127.0.0.1:36804: read tcp 10.190.64.201:57124: connection reset by peer

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.