GotoX icon indicating copy to clipboard operation
GotoX copied to clipboard

自 v3.9.1 起发布的 Windows 打包采用了新机制,如无法正常运行请在这里反馈

Open SeaHOH opened this issue 1 year ago • 32 comments

此处仅针对发布附带的 Windows (7z) 打包,因新机制采用了 memimport,个别文件加载会有问题 ( 如 #266 )。 使用本地 Python 时,请下载通用 (zip) 打包,并安装依赖。

  • Win7,NT 6.1 7601
  • Server 2019,NT 10.0 20348,1809
  • Server 2022,NT 10.0 17763,在 21H1 和 21H2 中间

以上系统已经过测试并实施了兼容性处理,除了 Win8 其余大概不会再出问题。 如果仍然遇到无法启动或崩溃之类的问题,请给出操作系统的版本信息,以及当时具体的错误信息。

SeaHOH avatar Jun 14 '23 10:06 SeaHOH

win11 dev 23481 GotoX v3.92 无论是直接运行GotoX.vbs还是手动删除多余文件结果都是: 通知中心弹出通知 GotoX正在运行 窗口正常打开,========以上一切正常,========以下什么都没,浏览器提示无法连接代理

standritsu avatar Jun 14 '23 23:06 standritsu

@standritsu 谢谢反馈!

也就是说,托盘工具有启动过,但窗口中没有任何日志信息,所有不确定 GotoX 本体是否被调用过。 请在 CMD 或 PowerShell 中直接运行 GotoX 本体,以确定托盘工具是否正常工作。 运行之前,先用 cd 命令转到 GotoX 根目录,然后运行以下命令。

python\python start.py

如果是 GotoX 本体及新打包的问题,此时应该会出现相应错误信息,请把它们复制并贴到这里以便分析。

SeaHOH avatar Jun 15 '23 08:06 SeaHOH

点此查看日志
===============================================================================
 GotoX 版 本 : 3.9.2 (python/3.11.4 gevent(libev-cext-4.33)/22.10.2 pyOpenSSL/23.2.0)

 CF  Workers : @xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

 监 听 地 址 : 自动代理 - :8087
               CFW 代理 - :8086

 代 理 认 证 : 无需

 调 试 信 息 : INFO

 保 存 日 志 : 否

 网 络 配 置 : ipv4
               HTTP  - 直连
               HTTPS - 转发

 连 接 模 式 : 远程 - TLS
               本地 - TLS

 域 名 解 析 : 系统 - [223.5.5.5]:53 | [223.6.6.6]:53
               远程 - [1.1.1.1]:53 | [1.0.0.1]:53
               本地 - [114.114.114.114]:53 | [114.114.115.115]:53
                DoH - https://dns.alidns.com/dns-query | https://1.0.0.1/dns-query

 解 析 顺 序 : DoH >> 远程 >> 系统

 IP 数 据 库 : CN IP from 17mon-20230525, range count: 4282

 直 连 域 名 : 2023-05-25 07:08, domains count: 64482, IPs count: 0

 安 装 证 书 : 设置代理后访问 http://gotox.go/
===============================================================================

PS D:\GotoX-win_amd64>

托盘没启动,通知中心没弹出通知

standritsu avatar Jun 15 '23 09:06 standritsu

@standritsu 就只显示了启动信息,然后就退出到命令行提示,是这样吗?

托盘没启动,通知中心没弹出通知

这里测试是只运行本体,没有托盘工具。

SeaHOH avatar Jun 15 '23 09:06 SeaHOH

是,就这样回到了命令行

standritsu avatar Jun 15 '23 09:06 standritsu

@standritsu 新建一个 memimport_exclude_modules 文件放入 python 文件夹中,再运行试试。

memimport_exclude_modules 内容如下:

greenlet._greenlet
cryptography.hazmat.bindings._rust

SeaHOH avatar Jun 15 '23 09:06 SeaHOH

应该是我原来的cert文件夹里面某个证书有问题,替换掉整个文件夹就行了

standritsu avatar Jun 15 '23 09:06 standritsu

应该是我原来的cert文件夹里面某个证书有问题,替换掉整个文件夹就行了

是吗?但是没有错误信息这点有点奇怪。

SeaHOH avatar Jun 15 '23 09:06 SeaHOH

@nbzdwss78 使用本地 Python 时请单独安装依赖,下载通用 (zip) 打包,而非 Windows (7z) 打包。

以下是安装命令。

pip install -r requirements.txt
pip install -r extras-requirements.txt

SeaHOH avatar Jun 15 '23 10:06 SeaHOH

@nbzdwss78 发布的 Windows 打包添加了不同于官方的包加载机制,以此加载平台特定的包,就是带平台后缀的那些。 如果你不想再安装依赖,那么不要使用本地 Python,而是直接运行 vbs 文件,或使用托盘工具添加快捷方式到桌面并以此启动。

SeaHOH avatar Jun 15 '23 11:06 SeaHOH

和上面的同样状况, 只有使用nogevent模式可以正常使用.

@standritsu 新建一个 memimport_exclude_modules 文件放入 python 文件夹中,再运行试试。

memimport_exclude_modules 内容如下:

greenlet._greenlet
cryptography.hazmat.bindings._rust

做了这一步之后也可以正常使用.

Flandre-Scarlet avatar Jun 15 '23 13:06 Flandre-Scarlet

@Flandre-Scarlet 能发下操作系统版本吗?你这也是没有错误信息出现,是吧?


@standritsu

和上面的同样状况, 只有使用nogevent模式可以正常使用.

@standritsu 新建一个 memimport_exclude_modules 文件放入 python 文件夹中,再运行试试。 memimport_exclude_modules 内容如下:

greenlet._greenlet
cryptography.hazmat.bindings._rust

做了这一步之后也可以正常使用.

应该是我原来的cert文件夹里面某个证书有问题,替换掉整个文件夹就行了

你确定只是证书问题,没有添加 memimport_exclude_modules 就好了?

SeaHOH avatar Jun 15 '23 13:06 SeaHOH

@SeaHOH 系统是Win11最新

直接命令行运行不带托盘的结果:

点此查看日志
C:\GotoX>
$ .\python\python.exe -E -s .\start.py
22:00:37 T [直连/白名单] 发现重复域名:www.epsonconnect.com < epsonconnect.com
22:00:37 T 开始添加内置直连域名列表
22:00:37 T [直连/白名单] 发现重复域名:cn < cn
22:00:37 T [直连/白名单] 发现重复域名:mo > *.mo
22:00:37 T [直连/白名单] 发现重复域名:xn--fiqs8s < xn--fiqs8s
22:00:37 T [直连/白名单] 发现重复域名:cyou > *.cyou
22:00:37 T [直连/白名单] 发现重复域名:ren > *.ren
22:00:37 T [直连/白名单] 发现重复域名:top < top
22:00:37 T [直连/白名单] 发现重复域名:wang > *.wang
22:00:37 T [直连/白名单] 发现重复域名:xin > *.xin
22:00:37 T [直连/白名单] 发现重复域名:xn--io0a7i < xn--io0a7i
22:00:37 T [直连/白名单] 发现重复域名:xn--55qx5d < xn--55qx5d
22:00:37 T [直连/白名单] 发现重复域名:xn--vuq861b > *.xn--vuq861b
22:00:37 T [直连/白名单] 发现重复域名:xn--6qq986b3xl > *.xn--6qq986b3xl
22:00:37 T [直连/白名单] 发现重复域名:xn--ses554g > *.xn--ses554g
22:00:37 T [直连/白名单] 发现重复域名:xn--czr694b > *.xn--czr694b
22:00:37 T [直连/白名单] 发现重复域名:citic > *.citic
22:00:37 T 开始添加用户本地域名列表
22:00:38 T 已读取系统当前 DNS 设置:(('127.0.0.1', 53),)
===============================================================================
 GotoX 版 本 : 3.9.2 (python/3.11.4 gevent(libev-cext-4.33)/22.10.2 pyOpenSSL/23.2.0)

 CF  Workers : xxxxxxx

 监 听 地 址 : 自动代理 - 127.0.0.1:8087
               CFW 代理 - 127.0.0.1:8086

 代 理 认 证 : 无需

 调 试 信 息 : TEST

 保 存 日 志 : 否

 网 络 配 置 : ipv46
               HTTP  - 直连
               HTTPS - 转发

 连 接 模 式 : 远程 - TLS
               本地 - TLS

 域 名 解 析 : 系统 - [127.0.0.1]:53
               远程 - [1.1.1.1]:53 | [1.0.0.1]:53
               本地 - [114.114.114.114]:53 | [114.114.115.115]:53
                DoH - https://cloudflare-dns.com/dns-query

 解 析 顺 序 : 远程 >> DoH >> 系统

 IP 数 据 库 : CN IP from 17mon-20230615, range count: 4282

 直 连 域 名 : 2023-06-15 16:32, domains count: 64341, IPs count: 0

 安 装 证 书 : 设置代理后访问 http://gotox.go/
===============================================================================

C:\GotoX>

Flandre-Scarlet avatar Jun 15 '23 14:06 Flandre-Scarlet

@Flandre-Scarlet 谢谢!

看来确实是 greenlet 的问题,加载没问题,但是一运行就会崩溃。测试时嫌麻烦,只尝试了加载。 看来 Rust 确实好用,起码崩之前还给能个 panic,C 直接就崩了。

等会儿先传个 memimport_exclude_modules 做为临时解决方案,下个版本会尝试修复,修复不了就内置此临时方案。

SeaHOH avatar Jun 15 '23 14:06 SeaHOH

Traceback (most recent call last): File "D:\GotoX\start.py", line 36, in from gotox import proxy File "D:\GotoX\local\proxy.py", line 52, in compat.init() File "D:\GotoX\local\common\decorator.py", line 16, in newfunc result = func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "D:\GotoX\local\compat_init_.py", line 121, in init import gevent File "D:\GotoX\python\site-packages\gevent-21.12.0-cp310-cp310-win_amd64.egg\gevent_init_.py", line 85, in File "D:\GotoX\python\site-packages\gevent-21.12.0-cp310-cp310-win_amd64.egg\gevent_config.py", line 699, in File "D:\GotoX\python\site-packages\gevent-21.12.0-cp310-cp310-win_amd64.egg\gevent_config.py", line 146, in get File "D:\GotoX\python\site-packages\gevent-21.12.0-cp310-cp310-win_amd64.egg\gevent_config.py", line 248, in validate File "D:\GotoX\python\site-packages\gevent-21.12.0-cp310-cp310-win_amd64.egg\gevent_config.py", line 219, in _import_one_of File "D:\GotoX\python\site-packages\gevent-21.12.0-cp310-cp310-win_amd64.egg\gevent_config.py", line 237, in import_one File "importlib_init.py", line 126, in import_module File "D:\GotoX\python\site-packages\gevent-21.12.0-cp310-cp310-win_amd64.egg\gevent\libev\corecext.py", line 8, in File "D:\GotoX\python\site-packages\gevent-21.12.0-cp310-cp310-win_amd64.egg\gevent\libev\corecext.py", line 4, in bootstrap NameError: name 'pkgdll_get_path' is not defined

yushibo5323 avatar Jun 21 '23 10:06 yushibo5323

@yushibo5323 覆盖升级时,并不是用新版本直接覆盖旧版本,正确步骤是用旧版本的配置文件夹覆盖新版本,即只需要保留 cert (可选,CA 证书,避免重复生成和导入) 和 config文件夹。特别是 Windows 便携版之间,因为打包了各种依赖,直接覆盖可能导致版本冲突不兼容。

SeaHOH avatar Jun 21 '23 12:06 SeaHOH

请问还是不能用怎么办?

点此查看日志
Microsoft Windows [版本 10.0.22623.1325]
(c) Microsoft Corporation。保留所有权利。

D:\GotoX>python\python start.py
===============================================================================
 GotoX 版 本 : 3.9.2 (python/3.11.4 gevent(libev-cext-4.33)/22.10.2 pyOpenSSL/23.2.0)

 CF  Workers : gh.todo123.cf

 监 听 地 址 : 自动代理 - 127.0.0.1:8087
               CFW 代理 - 127.0.0.1:8086

 代 理 认 证 : 无需

 调 试 信 息 : INFO

 保 存 日 志 : 否

 网 络 配 置 : ipv46
               HTTP  - 直连
               HTTPS - 转发

 连 接 模 式 : 远程 - TLS
               本地 - TLS

 域 名 解 析 : 系统 - [8.8.8.8]:53
               远程 - [1.1.1.1]:53 | [1.0.0.1]:53
               本地 - [114.114.114.114]:53 | [114.114.115.115]:53
                DoH - https://cloudflare-dns.com/dns-query

 解 析 顺 序 : 远程 >> DoH >> 系统

 IP 数 据 库 : CN IP from apnic-20230614/20230613 and 17mon-20230614, range count: 4294

 直 连 域 名 : 2023-06-14 10:21, domains count: 64345, IPs count: 0

 安 装 证 书 : 设置代理后访问 http://gotox.go/
===============================================================================

22:54:55 I IP 列表 'google_cn' 解析结果:iplist=['203.208.40.98', '2401:3800:4002:800::1002', '2401:3800:4002:806::1002', '203.208.40.66', '203.208.41.34']
22:54:56 I IP 列表 'cdn_wiki_text' 解析结果:iplist=['2620:0:862:ed1a::1', '103.102.166.224', '2620:0:860:ed1a::1', '2620:0:861:ed1a::1', '208.80.154.224', '2620:0:863:ed1a::1', '208.80.153.224', '2001:df2:e500:ed1a::1', '198.35.26.96', '91.198.174.192']
22:54:57 I IP 列表 'cdn_wiki_upload' 解析结果:iplist=['2620:0:863:ed1a::2:b', '198.35.26.112', '208.80.153.240', '103.102.166.240', '2620:0:862:ed1a::2:b', '2620:0:860:ed1a::2:b', '91.198.174.208', '2620:0:861:ed1a::2:b', '2001:df2:e500:ed1a::2:b', '208.80.154.240']

D:\GotoX>

在添加memimport_exclude_modules之前,没有( 22:54:55 I IP 列表 'google_cn' 解析结果:iplist=['203.208.40.98', '2401:3800:4002:800::1002', '2401:3800:4002:806::1002', '203.208.40.66', '203.208.41.34'] 22:54:56 I IP 列表 'cdn_wiki_text' 解析结果:iplist=['2620:0:862:ed1a::1', '103.102.166.224', '2620:0:860:ed1a::1', '2620:0:861:ed1a::1', '208.80.154.224', '2620:0:863:ed1a::1', '208.80.153.224', '2001:df2:e500:ed1a::1', '198.35.26.96', '91.198.174.192'] 22:54:57 I IP 列表 'cdn_wiki_upload' 解析结果:iplist=['2620:0:863:ed1a::2:b', '198.35.26.112', '208.80.153.240', '103.102.166.240', '2620:0:862:ed1a::2:b', '2620:0:860:ed1a::2:b', '91.198.174.208', '2620:0:861:ed1a::2:b', '2001:df2:e500:ed1a::2:b', '208.80.154.240'] )这一段。

yushibo5323 avatar Jun 23 '23 15:06 yushibo5323

@yushibo5323 你试过不覆盖,单独从干净的 v3.9.2 + memimport_exclude_modules 启动吗? 请注意,memimport_exclude_modules 文件是没有任何扩展名的,它不是 .txt 文件类型,请从发布页下载。

如果仍然无法正常启动,这里再提供一个 memimport_exclude_modules.zip,请解压缩后使用,内容为:

_cffi_backend
greenlet._greenlet
cryptography.hazmat.bindings._rust

SeaHOH avatar Jun 24 '23 14:06 SeaHOH

实际上,我已经把旧有的文件全删了。config重新写。加入“_cffi_backend”后,还是如此。请问怎么办

yushibo5323 avatar Jun 25 '23 07:06 yushibo5323

@yushibo5323 看这个崩溃位置,排除已正常运行的,涉及到的模块也已恢复之前的加载模式,实在想不到其它哪里还有问题。 你试过不改配置直接运行吗?如果这样可以运行成功,麻烦把修改后无法正常运行的配置发给我,以便定位问题。

SeaHOH avatar Jun 27 '23 05:06 SeaHOH

实际上,我config只添加了cfw地址。 Config - 副本.txt

将地址删了还是不行 image

yushibo5323 avatar Jun 27 '23 14:06 yushibo5323

@yushibo5323 v3.9.0post1 能正常运行吗?如果正常,你就暂时先用着。反之,请试试转到将系统更新转到 Dev 通道并更新,然后再试试。正式版目前还未追上 Beta 版,无法切换,如果你不嫌麻烦的话倒是可以重新安装,不过这里不建议这么折腾。

@standritsu 使用的就是 10.0.23481.1000,看起来已经正常运行。

@Flandre-Scarlet 能给个具体的系统版本号吗?


请问,还有其他使用 Windows 11 Beta 更新通道的用户吗,你们的系统版本号都是多少?麻烦提供下,谢谢!

SeaHOH avatar Jun 27 '23 23:06 SeaHOH

实际上,我已经把旧有的文件全删了。config重新写。加入“_cffi_backend”后,还是如此。请问怎么办

你有没有导入过新的证书,导入一次看看

standritsu avatar Jun 27 '23 23:06 standritsu

v3.9.0post1能用,不过在以下之后又不动了。

12:37:16 E L4:10595-> 伪造加密连接失败:host='github.com',Error([('SSL routines', '', 'sslv3 alert certificate unknown')])
Traceback (most recent call last):
  File "E:\gotox\local\ProxyHandler.py", line 1200, in do_FAKECERT
    ssl_sock.do_handshake_server_side()
  File "E:\gotox\local\compat\openssl.py", line 90, in do_handshake_server_side
    self.__iowait(self._connection.do_handshake)
  File "E:\gotox\local\compat\openssl.py", line 37, in __iowait
    return io_func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\gotox\python\site-packages\pyOpenSSL-22.1.0-py3-none-any.egg\OpenSSL\SSL.py", line 2075, in do_handshake
    self._raise_ssl_error(self._ssl, result)
  File "E:\gotox\python\site-packages\pyOpenSSL-22.1.0-py3-none-any.egg\OpenSSL\SSL.py", line 1715, in _raise_ssl_error
    _openssl_assert(
  File "E:\gotox\python\site-packages\pyOpenSSL-22.1.0-py3-none-any.egg\OpenSSL\_util.py", line 71, in openssl_assert
    exception_from_error_queue(error)
  File "E:\gotox\python\site-packages\pyOpenSSL-22.1.0-py3-none-any.egg\OpenSSL\_util.py", line 57, in exception_from_error_queue
    raise exception_type(errors)
OpenSSL.SSL.Error: [('SSL routines', '', 'sslv3 alert certificate unknown')]

yushibo5323 avatar Jun 28 '23 04:06 yushibo5323

@SeaHOH Windows 11 22H2 22621.1928

点此查看

我这也出现有点类似上面的错误 但是看上去好像没什么影响, 依然能正常工作... 感觉是扫IP时出现问题

14:43:13 E [picker gws] pick_ip_worker 发生错误:tuple index out of range
Traceback (most recent call last):
  File "C:\GotoX\local\GIPManager.py", line 846, in get_ip_info
    ssl_sock.do_handshake()
  File "C:\GotoX\local\compat\openssl.py", line 84, in do_handshake
    self.__iowait(self._connection.do_handshake)
  File "C:\GotoX\local\compat\openssl.py", line 42, in __iowait
    return io_func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\GotoX\python\site-packages\pyOpenSSL-23.2.0-py3-none-any.egg\OpenSSL\SSL.py", line 2182, in do_handshake
    self._raise_ssl_error(self._ssl, result)
  File "C:\GotoX\python\site-packages\pyOpenSSL-23.2.0-py3-none-any.egg\OpenSSL\SSL.py", line 1794, in _raise_ssl_error
    raise ZeroReturnError()
OpenSSL.SSL.ZeroReturnError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\GotoX\local\GIPManager.py", line 962, in pick_ip_worker
    domain, ssl_time, type = self.get_ip_info(ip)
                             ^^^^^^^^^^^^^^^^^^^^
  File "C:\GotoX\local\GIPManager.py", line 859, in get_ip_info
    if not retry and (e.args == zero_EOF_error or e.args[0] in zero_errno):
                                                  ~~~~~~^^^
IndexError: tuple index out of range

我又看了下, 应该是扫gws有问题, 一个月都没扫到1个gws IP, 不太正常... 我在ip.use文件里填了以前扫的gws IP, 是可以正常使用的.

Flandre-Scarlet avatar Jun 28 '23 20:06 Flandre-Scarlet

v3.9.0post1能用,不过在以下之后又不动了。

不动是什么意思,是程序又崩溃了后面没有其它日志吗?

另外,伪装证书错误大概是因为没有导入证书,或者导入的证书和当前生成的不符,需要删除旧证书重新导入。

SeaHOH avatar Jun 29 '23 02:06 SeaHOH

是的,但重启后就凑合用,之前麻烦您了

yushibo5323 avatar Jun 29 '23 08:06 yushibo5323

@SeaHOH 我重新测了一遍, 发现默认的配置确实启动就会崩溃

筛查了下, checksysca = 1 这个就会崩 关了就没问题了, 因为我早就关了了所以没发现...

Flandre-Scarlet avatar Jun 29 '23 08:06 Flandre-Scarlet

发现默认的配置确实启动就会崩溃

筛查了下, checksysca = 1 这个就会崩 关了就没问题了

@yushibo5323 应该就是检查 CA 导致的,请按照这个操作再试试 v3.9.2。

SeaHOH avatar Jun 29 '23 13:06 SeaHOH

来反馈一下,有阵子没用GOX,错过391版本,直接试的392,+memimport_exclude_modules 关闭checksysca, win10可以运行

2378 avatar Jul 14 '23 05:07 2378