SeaHOH / GotoX

本地自动代理,修改自 goagent。
730 stars 148 forks source link

在我这里经常会出现的错误,不知道是不是特例。 #126

Closed lshilshi closed 4 years ago

lshilshi commented 5 years ago

win7,x64 GotoX 3.5.4,未单独安装python chrome v75 x64 + SwitchyOmega

Unhandled exception in thread started by <function on_reset_dns at 0x00000000032
88E18>
Traceback (most recent call last):
  File "urllib\request.py", line 1318, in do_open
  File "http\client.py", line 1239, in request
  File "http\client.py", line 1285, in _send_request
  File "http\client.py", line 1234, in endheaders
  File "http\client.py", line 1026, in _send_output
  File "http\client.py", line 964, in send
  File "http\client.py", line 936, in connect
  File "socket.py", line 724, in create_connection
  File "socket.py", line 713, in create_connection
ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "..\launcher\win32.py", line 205, in on_reset_dns
    urlopen('http://localhost/docmd?cmd=reset_dns')
  File "urllib\request.py", line 223, in urlopen
  File "urllib\request.py", line 526, in open
  File "urllib\request.py", line 544, in _open
  File "urllib\request.py", line 504, in _call_chain
  File "urllib\request.py", line 1346, in http_open
  File "urllib\request.py", line 1320, in do_open
urllib.error.URLError: <urlopen error [WinError 10061] 由于目标计算机积极拒绝,
无法连接。>
Unhandled exception in thread started by <function on_reset_autorule at 0x000000
0003288EA0>
Traceback (most recent call last):
  File "urllib\request.py", line 1318, in do_open
  File "http\client.py", line 1239, in request
  File "http\client.py", line 1285, in _send_request
  File "http\client.py", line 1234, in endheaders
  File "http\client.py", line 1026, in _send_output
  File "http\client.py", line 964, in send
  File "http\client.py", line 936, in connect
  File "socket.py", line 724, in create_connection
  File "socket.py", line 713, in create_connection
ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "..\launcher\win32.py", line 208, in on_reset_autorule
    urlopen('http://localhost/docmd?cmd=reset_autorule')
  File "urllib\request.py", line 223, in urlopen
  File "urllib\request.py", line 526, in open
  File "urllib\request.py", line 544, in _open
  File "urllib\request.py", line 504, in _call_chain
  File "urllib\request.py", line 1346, in http_open
  File "urllib\request.py", line 1320, in do_open
urllib.error.URLError: <urlopen error [WinError 10061] 由于目标计算机积极拒绝,
无法连接。>
Unhandled exception in thread started by <function on_reset_dns at 0x00000000032
88E18>
Traceback (most recent call last):
  File "urllib\request.py", line 1318, in do_open
  File "http\client.py", line 1239, in request
  File "http\client.py", line 1285, in _send_request
  File "http\client.py", line 1234, in endheaders
  File "http\client.py", line 1026, in _send_output
  File "http\client.py", line 964, in send
  File "http\client.py", line 936, in connect
  File "socket.py", line 724, in create_connection
  File "socket.py", line 713, in create_connection
ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "..\launcher\win32.py", line 205, in on_reset_dns
    urlopen('http://localhost/docmd?cmd=reset_dns')
  File "urllib\request.py", line 223, in urlopen
  File "urllib\request.py", line 526, in open
  File "urllib\request.py", line 544, in _open
  File "urllib\request.py", line 504, in _call_chain
  File "urllib\request.py", line 1346, in http_open
  File "urllib\request.py", line 1320, in do_open
urllib.error.URLError: <urlopen error [WinError 10061] 由于目标计算机积极拒绝,
无法连接。>

在更新ip数据库和直连域名、以及重置DNS缓存等信息时常出现 “由于目标计算机积极拒绝,……” 的错误

是本机配置错误,还是python脚本的问题?

SeaHOH commented 5 years ago

把你修改了的配置发来看看,如果觉得不方便可以用邮件发给我。

lshilshi commented 5 years ago

也就一个config.user.ini啊,其它没动啊 见下文,仅删减个人id

SeaHOH commented 5 years ago

你的系统 hosts 文件是否有修改过?

在更新ip数据库和直连域名、以及重置DNS缓存等信息时常出现

再发个更新 IP 数据库或者直连域名的错误来看一下

lshilshi commented 5 years ago

你的系统 hosts 文件是否有修改过?

看了下C:\Windows\system32\drivers\etc\hosts。应该没什么修改的。

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost
192.168.1.128 windows10.microdone.cn

也就一行内容。应该是kms软件加上去的。

lshilshi commented 5 years ago

还有昨天和今天,跑了两天,还是gae ip数量为0……

上海电信宽带

SeaHOH commented 5 years ago

命令行 ping localhost 看是否有回应。

再发个更新 IP 数据库或者直连域名的错误来看一下

还有昨天和今天,跑了两天,还是gae ip数量为0……

上海电信宽带

这个比较无助,自带的 IP 起码有两千,大部分是 IPv6。 看来需要你自己扫描可用的 IP,证书名称是 *.appspot-preview.com

lshilshi commented 5 years ago

再发个更新 IP 数据库或者直连域名的错误来看一下

17:00:33 I 开始下载 APNIC 列表
17:00:40 I L4:64514->202.12.29.205 "FWD CONNECT ftp.apnic.net:443 HTTP/1.1" - -
17:01:05 W [picker gae] 当前 gae IP 数量为 0
17:01:46 W [picker gae] 当前 gae IP 数量为 0
17:02:03 I APNIC 列表下载完毕
17:02:03 I 开始下载 17mon 列表
17:02:26 W [picker gae] 当前 gae IP 数量为 0
17:03:06 W [picker gae] 当前 gae IP 数量为 0
17:03:46 W [picker gae] 当前 gae IP 数量为 0
17:03:47 W [picker gws] 0 测试失败(超时:1000 ms)188.43.87.30,2869 ms,Bad IP
 已删除
17:03:51 W 请求网址 'https://raw.githubusercontent.com/17mon/china_ip_list/maste
r/china_ip_list.txt' 时,重试 10 次后仍然失败。
17:03:51 W 请忽略下面这个错误跟踪,并检查是否需要更改自动代理规则(ActionFilter.
ini)。
17:03:51 W 更新直连 IP 库 'D:\\GreenProgram\\GotoX\\data\\directip.db' 失败:<ur
lopen error _ssl.c:835: The handshake operation timed out>

实际我手动访问直连ip库的3个链接和直连domain库的1个链接,都可以很快打开(≤5s) 但是在gotox中更新,都只有apnic的这个可以响应(但解析时间也要几分钟) 其它几个都会超时,然后日志报错,也是说更新操作超时吧?

lshilshi commented 5 years ago

命令行 ping localhost 看是否有回应。

C:\Users\XXXX>ping localhost

正在 Ping XXXX [::1] 具有 32 字节的数据:
来自 ::1 的回复: 时间<1ms
来自 ::1 的回复: 时间<1ms
来自 ::1 的回复: 时间<1ms
来自 ::1 的回复: 时间<1ms

::1 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms
SeaHOH commented 5 years ago

实际我手动访问直连ip库的3个链接和直连domain库的1个链接,都可以很快打开(≤5s)

请问这个操作使没使用代理,如果有,是否是 GotoX?

lshilshi commented 5 years ago

请问这个操作使没使用代理,如果有,是否是 GotoX?

直接连接,没有经过任何代理(https://raw.githubusercontent.com我是可以直接访问的

SeaHOH commented 5 years ago

没有什么头绪,和我预想的情况都不符,需要更多信息。 按照下面设置会记录更详细的信息,然后重复这两个错误,把错误记录发过来。

[log]
level = 2
lshilshi commented 5 years ago

看来需要你自己扫描可用的 IP,证书名称是 *.appspot-preview.com

扫描的py文件是哪一个?手头此前的gscan是go语言的,不好用。

lshilshi commented 5 years ago

没有什么头绪,和我预想的情况都不符,需要更多信息。 按照下面设置会记录更详细的信息,然后重复这两个错误,把错误记录发过来。

好像是dns的原因?你看我此前的配置文件,dns设置有问题没?

lshilshi commented 5 years ago
18:06:10 I 开始下载 felixonmars/accelerated-domains.china 列表
18:06:14 T dns_system_resolve 已缓存:5/1024,耗时:2267 毫秒,raw.githubusercon
tent.com = 查询失败
18:06:15 T 172.217.31.186|122.2.215.152 dns_over_https 已缓存:5/1024,耗时:44
0 毫秒,raw.githubusercontent.com = 查询失败
18:06:37 W [picker gae] 当前 gae IP 数量为 0
18:07:17 W [picker gae] 当前 gae IP 数量为 0
18:07:57 W [picker gae] 当前 gae IP 数量为 0
18:08:00 W 请求网址 'https://raw.githubusercontent.com/felixonmars/dnsmasq-china
-list/master/accelerated-domains.china.conf' 时,重试 10 次后仍然失败。
18:08:00 W 请忽略下面这个错误跟踪,并检查是否需要更改自动代理规则(ActionFilter.
ini)。
18:08:00 W 更新直连域名列表 'D:\\GreenProgram\\GotoX\\data\\directdomains.txt'
失败:<urlopen error _ssl.c:835: The handshake operation timed out>
SeaHOH commented 5 years ago

扫描的py文件是哪一个?手头此前的gscan是go语言的,不好用。

可以用 gogotest,专门检测默认证书的,操作方便。

另外,这错误还是搞不懂啊,看起来很奇怪。

SeaHOH commented 5 years ago

暂时给你个替代方案:

  1. 浏览器中访问以下地址,分别重置 DNS 缓存和自动规则。gotox.go 要使用 GotoX 代理。 http://gotox.go/docmd?cmd=reset_dns http://gotox.go/docmd?cmd=reset_autorule

  2. 以下命令行分别是更新 IP 和域名,用实际地址替换,如需要引号自行添加。 GotoX\python\python.exe GotoX\launcher\buildipdb.py GotoX\python\python.exe GotoX\launcher\builddomains.py

lshilshi commented 5 years ago

另外,这错误还是搞不懂啊,看起来很奇怪。

另外反馈个问题,不知道对此是否有帮助。 应该是3.5.3之前的版本反应比较正常 后面一段时间用v2ray和ssr去了,最近才又回来的gotox 更新3.5.4之后再用的

发现经常运行后,出来第一部分(就是配置概览吧)后 然后连“IP 列表 'google_2p' 解析结果:iplist=”这部分都刷不出来 用浏览器测试,也会发现无法访问,gotox这边也没有任何交互日志 经常需要重启gotox N次之后才会正常使用(能刷出列表,能翻长城了)

lshilshi commented 5 years ago

2. 以下命令行分别是更新 IP 和域名,用实际地址替换,如需要引号自行添加。 GotoX\python\python.exe GotoX\launcher\buildipdb.py GotoX\python\python.exe GotoX\launcher\builddomains.py

手动正常

开始下载 felixonmars/accelerated-domains.china 列表
felixonmars/accelerated-domains.china 列表下载完毕
更新信息:2019-09-29
包含域名条目数:68988
保存地址:D:\GreenProgram\GotoX\data\directdomains.txt
直连域名列表已保存完毕

开始下载 APNIC 列表
APNIC 列表下载完毕
开始下载 17mon 列表
17mon 列表下载完毕
开始下载 GaoYiFan 列表
GaoYiFan 列表下载完毕
更新信息:apnic-20190929/20190927 and 17mon-20190929 and gaoyifan-20190929
包含 IP 范围条目数:4292
保存地址:D:\GreenProgram\GotoX\data\directip.db
直连 IP 库已保存完毕
wz7465 commented 5 years ago

另外,这错误还是搞不懂啊,看起来很奇怪。

另外反馈个问题,不知道对此是否有帮助。 应该是3.5.3之前的版本反应比较正常 后面一段时间用v2ray和ssr去了,最近才又回来的gotox 更新3.5.4之后再用的

发现经常运行后,出来第一部分(就是配置概览吧)后 然后连“IP 列表 'google_2p' 解析结果:iplist=”这部分都刷不出来 用浏览器测试,也会发现无法访问,gotox这边也没有任何交互日志 经常需要重启gotox N次之后才会正常使用(能刷出列表,能翻长城了)

dns解析搞的鬼 [iplist] google_2p = www.google.com 改成固定ip google_2p = ip|ip

SeaHOH commented 5 years ago

这属于治标,启动应该能正常一点。 但是根本的 DNS 为什么会解析失败还是搞不明白,尝试优先使用 DoH 解析是否有改善。

SeaHOH commented 5 years ago

DoH 为什么会失败已经知道了,因为谷歌上月底把它迁移到 8.8.8.8,无法访问。 已更新使用其它 DoH 服务商,请更新至主分支。

但是系统 DNS 解析失败的原因还是不明白,现有信息不足以判断,估计和你的系统 DNS 设置有关。

wz7465 commented 5 years ago

系统 DNS只是普通dns,应该受干扰所致返回假地址。现在我只保留了remote-本地加密dns 使用没问题

lshilshi commented 5 years ago

DoH 为什么会失败已经知道了,因为谷歌上月底把它迁移到 8.8.8.8,无法访问。 已更新使用其它 DoH 服务商,请更新至主分支。

但是系统 DNS 解析失败的原因还是不明白,现有信息不足以判断,估计和你的系统 DNS 设置有关。

节后用楼上兄弟建议的ip代域名方式,都没有dns返回信息,现在长城这么牛了吗? 提供下错误log(重复的左键重启gotox中出现,而且这次没救了)

Traceback (most recent call last):
  File "D:\GreenProgram\GotoX\python\site-packages\dnslib-0.9.10.egg\dnslib\dns.
py", line 998, in parse
    data = buffer.get(length)
  File "D:\GreenProgram\GotoX\python\site-packages\dnslib-0.9.10.egg\dnslib\buff
er.py", line 64, in get
    (self.offset,self.remaining(),length))
dnslib.buffer.BufferError: Not enough bytes [offset=38,remaining=54,requested=12
550]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "src\gevent\greenlet.py", line 766, in gevent._greenlet.Greenlet.run
  File "D:\GreenProgram\GotoX\local\proxy.py", line 131, in do_resolve
    iplist = dns_resolve(host)
  File "D:\GreenProgram\GotoX\local\common\dns.py", line 66, in _dns_resolve
    return dns_local_resolve(host, qtypes)
  File "D:\GreenProgram\GotoX\local\common\dns.py", line 363, in dns_local_resol
ve
    iplist = _dns_remote_resolve(host, GC.DNS_LOCAL_SERVERS, timeout=2, qtypes=q
types)
  File "D:\GreenProgram\GotoX\local\common\dns.py", line 241, in _dns_remote_res
olve
    reply = dnslib.DNSRecord.parse(reply_data)
  File "D:\GreenProgram\GotoX\python\site-packages\dnslib-0.9.10.egg\dnslib\dns.
py", line 110, in parse
    auth.append(RR.parse(buffer))
  File "D:\GreenProgram\GotoX\python\site-packages\dnslib-0.9.10.egg\dnslib\dns.
py", line 810, in parse
    buffer,rdlength)
  File "D:\GreenProgram\GotoX\python\site-packages\dnslib-0.9.10.egg\dnslib\dns.
py", line 1002, in parse
    (buffer.offset,e))
dnslib.dns.DNSError: Error unpacking RD [offset=38]: Not enough bytes [offset=38
,remaining=54,requested=12550]
2019-10-08T12:21:18Z <Greenlet at 0x4f98348: do_resolve('www.google.cn', <queue.
Queue object at 0x00000000054FF208>)> failed with DNSError
SeaHOH commented 5 years ago

google.cn 我很久以前就直接用的 IP,忘记测试这方面的内容了。 试试以下设置,记得用最新的主分支。

[dns]
localblacklist = g.cn|google.cn|google.com.hk
priority = system|overhttps|remote

经测试,默认设置可以正常使用,如无特殊状况,请不要这么设置 localblacklist

SeaHOH commented 5 years ago

@lshilshi 你的 DNS 相关设置都是什么?包括系统中的。 你是不是还运行了 DNS 相关的工具?

lshilshi commented 5 years ago

@lshilshi 你的 DNS 相关设置都是什么?包括系统中的。 你是不是还运行了 DNS 相关的工具?

没有运行其它的DNS相关的 只是网络链接中制定了系统的DNS,现在用的是百度的180.76.76.76 和114dns的114.114.115.119

SeaHOH commented 5 years ago

好像找到原因了,以下两种情况都超过了我设置的两秒钟超时:

  1. 百毒 DNS 好像因为用户太少,碰到首次域名解析延迟会很大 建议改用阿里或腾讯
  2. 114.114.115.119 是服务器本身延太大 建议用 114.114.114.119 代替 114.114.115.119

修改后,估计就正常了。 https://github.com/SeaHOH/GotoX/issues/126#issuecomment-539519821

lshilshi commented 5 years ago

好像找到原因了,以下两种情况都超过了我设置的两秒钟超时:

  1. 百毒 DNS 好像因为用户太少,碰到首次域名解析延迟会很大 建议改用阿里或腾讯
  2. 114.114.115.119 是服务器本身延太大 建议用 114.114.114.119 代替 114.114.115.119

修改后,估计就正常了。 #126 (comment)

这几个我这里ping应该都小于100的

另外,改了之后,仍然不能刷出dns返回值,快要疯了……

lshilshi commented 5 years ago

这次更惨,多次重启gotox,仍然出不来dns返回信息 在config将log level设为3 记录如下

23:32:44 T 已读取系统当前 DNS 设置:(('119.29.29.29', 53), ('114.114.114.119', 5
3), ('182.254.116.116', 53), ('223.5.5.5', 53), ('2001:4860:4860::8844', 53), ('
2001:4860:4860::8888', 53))
23:32:44 D 自定义 IP 列表解析开始:host='www.g.cn'
23:32:44 D 自定义 IP 列表解析开始:host='www.google.cn'
23:32:44 D 自定义 IP 列表解析开始:host='firebase.google.cn'
23:32:44 D 自定义 IP 列表解析开始:host='developers.google.cn'

除了第一次有firebase.google.cn的返回值(其它的也没有了) 后面的多次一个返回值都没了,也没有其它log……

config中【dns】的设置文件如下

#用于 remote 优先级解析其它域名,填写可靠的 DNS 服务器,注意不要与系统设置重复,默认 8.8.8.8
servers = 1.0.0.1|1.1.1.1|47.101.136.37|8.8.8.8|8.8.4.4
#用于解析直连域名,填写 ISP DNS 或国内公共 DNS 以加快解析,默认 114.114.114.114
localservers = 114.114.114.119|114.114.114.114|119.29.29.29|223.5.5.5|180.76.76.76|80.80.80.80
localhost = 1
#主要是为了配合 localservers/localhost 使用
# localwhitelist 添加域名到直连域名列表
# localblacklist 从直连域名列表排除域名
localwhitelist =
localblacklist = g.cn|google.cn|google.com.hk
overhttps = 1
overhttpsservers = sg.gridns.xyz|edns.233py.com|us-dns.233py.com
# IP API 网址,必须是只返回 IPv4,没有其它多余文本,可填写多个
ipapi = https://lerry.me/ip|https://ifconfig.me/ip|https://api.ipify.org/|https://icanhazip.com/
priority = system|overhttps|remote
SeaHOH commented 5 years ago

解析延迟和 Ping 延迟是不同的概念。

试试把下面的 1024 和 2 分别改成 2048 和 4。 https://github.com/SeaHOH/GotoX/blob/3ca1ace9cb408fa35fff555b00544b043ca0ae7a/local/common/dns.py#L243-L245

还有,你填的 DNS 服务器是不是太多了,减少到三个以内。 localblacklist 也不用再设置,留空。 鉴于你这么折腾,可能先重启下猫比较好。

实在还是不行这么改:

priority = overhttps|system|remote
lshilshi commented 5 years ago

解析延迟和 Ping 延迟是不同的概念。

试试把下面的 1024 和 2 分别改成 2048 和 4。 https://github.com/SeaHOH/GotoX/blob/3ca1ace9cb408fa35fff555b00544b043ca0ae7a/local/common/dns.py#L243-L245

还有,你填的 DNS 服务器是不是太多了,减少到三个以内。 localblacklist 也不用再设置,留空。 鉴于你这么折腾,可能先重启下猫比较好。

实在还是不行这么改:

priority = overhttps|system|remote

嗯,其实我后面也发现了,别的没动,就改了priority 不过是priority = remote|overhttps|system 最后就没问题了

现在是我猫的dns紊乱了?

SeaHOH commented 5 years ago

现在是我猫的dns紊乱了?

看起来是吧,一般来说 2 秒超时足够了,何况还有那么多后备。 系统 DNS 设置、 servers 和 localservers 三者不要使用相同的 DNS,每个设置数量也尽量不要超过三个,多了也没太大用处。

Just2co commented 4 years ago

@SeaHOH 海少,看动作片的时候,每高速看十几秒钟就报 L4:63807-> data_queue peek 超时,break 然后就卡住不动了,手动重启之后又能用了,十几秒钟之后又卡死了,是哪里没配置好吗?

SeaHOH commented 4 years ago

可能线路 IP 质量不太行,代码本身也比较烂,调整配置只能略微改善。

[autorange/fast]
threads =   # 根据可用 IP 多寡调整,其余 3 个设置根据可用 IP 质量调整
SeaHOH commented 4 years ago

GAE 快玩完了,我是不会去绑卡的,过两天增加 CFWorker。