SeaHOH / GotoX

本地自动代理,修改自 goagent。
735 stars 149 forks source link

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

Open SeaHOH opened 1 year ago

SeaHOH commented 1 year ago

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

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

standritsu commented 1 year ago

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

SeaHOH commented 1 year ago

@standritsu 谢谢反馈!

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

python\python start.py

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

standritsu commented 1 year ago
点此查看日志 ``` =============================================================================== 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> ```

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

SeaHOH commented 1 year ago

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

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

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

standritsu commented 1 year ago

是,就这样回到了命令行

SeaHOH commented 1 year ago

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

memimport_exclude_modules 内容如下:

greenlet._greenlet
cryptography.hazmat.bindings._rust
standritsu commented 1 year ago

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

SeaHOH commented 1 year ago

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

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

SeaHOH commented 1 year ago

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

以下是安装命令。

pip install -r requirements.txt
pip install -r extras-requirements.txt
SeaHOH commented 1 year ago

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

Flandre-Scarlet commented 1 year ago

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

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

memimport_exclude_modules 内容如下:

greenlet._greenlet
cryptography.hazmat.bindings._rust

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

SeaHOH commented 1 year ago

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


@standritsu

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

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

greenlet._greenlet
cryptography.hazmat.bindings._rust

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

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

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

Flandre-Scarlet commented 1 year ago

@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> ```
SeaHOH commented 1 year ago

@Flandre-Scarlet 谢谢!

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

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

yushibo5323 commented 1 year ago

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

SeaHOH commented 1 year ago

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

yushibo5323 commented 1 year ago

请问还是不能用怎么办?

点此查看日志 ``` 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'] )这一段。

SeaHOH commented 1 year ago

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

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

_cffi_backend
greenlet._greenlet
cryptography.hazmat.bindings._rust
yushibo5323 commented 1 year ago

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

SeaHOH commented 1 year ago

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

yushibo5323 commented 1 year ago

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

将地址删了还是不行 image

SeaHOH commented 1 year ago

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

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

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


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

standritsu commented 1 year ago

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

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

yushibo5323 commented 1 year ago

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')]
Flandre-Scarlet commented 1 year ago

@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, 是可以正常使用的.
SeaHOH commented 1 year ago

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

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

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

yushibo5323 commented 1 year ago

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

Flandre-Scarlet commented 1 year ago

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

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

SeaHOH commented 1 year ago

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

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

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

2378 commented 1 year ago

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

gulut commented 6 months ago

Windows 10 20H2 在master分支最新的提交 93624e024f10731bfc384d54a9626607a1e737af (从3.9.2覆盖升级而来),未添加memimport_exclude_modules文件的情况下,即使在Debug Level下,也不显示一行日志,也不绑定端口,在添加后正常工作。

fnyexx commented 5 months ago

19:01:21 I IP 列表 'google_cn' 解析结果:iplist=['220.181.174.162', '220.181.174.34'] 19:01:22 I IP 列表 'cdn_wiki_text' 解析结果:iplist=['208.80.154.224', '2620:0:863:ed1a::1', '198.35.26.96', '2620:0:860:ed1a::1', '208.80.153.224', '103.102.166.224', '2001:df2:e500:ed1a::1', '2620:0:861:ed1a::1', '2a02:ec80:300:ed1a::1', '185.15.59.224'] 19:01:22 I IP 列表 'cdn_wiki_upload' 解析结果:iplist=['198.35.26.112', '208.80.154.240', '2620:0:861:ed1a::2:b', '2001:df2:e500:ed1a::2:b', '103.102.166.240', '208.80.153.240', '2620:0:863:ed1a::2:b', '2620:0:860:ed1a::2:b', '2a02:ec80:300:ed1a::2:b', '185.15.59.240'] 19:01:31 W 162.159.152.34 _create_ssl_connection 'gotox.oske.cn' 返回 Error([('SSL routines', '', 'tlsv1 alert protocol version')]),重试 19:01:32 W 104.19.2.76 create_ssl_connection 'https://gotox.oske.cn/gh' 失败:Error([('SSL routines', '', 'tlsv1 alert protocol version')]) 19:01:32 W 162.159.152.33 _create_ssl_connection 'gotox.oske.cn' 返回 Error([('SSL routines', '', 'tlsv1 alert protocol version')]),重试 19:01:32 W 104.19.2.84 create_ssl_connection 'https://gotox.oske.cn/gh' 失败:Error([('SSL routines', '', 'tlsv1 alert protocol version')]) 19:01:32 W gotox.CFWFetch.fetch_server_version 错误:'NoneType' object has no attribute 'status'