SeaHOH / GotoX

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

workers.dev 已挂 #229

Open SeaHOH opened 2 years ago

SeaHOH commented 2 years ago

一个小时前


另,鉴于下方有一些基于错误基础发表的描述,这里提供一些相应知识以供参考。

CNAME 记录和主机配置是完全不同的独立的两个概念与操作,就好比车辆绑定驾驶证,两者之间没有任何必然的关联。 如果相互不匹配,相关域名就无法正常连接和使用,包括且不限于 IP 受限、SNI 不匹配、Host 不匹配、证书不匹配、客户端验证失败等。

任何 DNS 记录包括 CNAME 记录修改后会延迟不定时间才生效,主机配置则是立即生效。

针对 https/TLS,GFW 会检测 IP、SNI 和总连接数,分别对应实施黑洞、RST 和丢包这些方法来干扰封禁。CNAME 不在检测范围内,既费力又无用。

GFW 可能会在以下几种情况获知域名相关信息:

loveinlastnight commented 2 years ago

暂时没法了,成都这里现在连IPV6都封完了。。。

Quantum2Bits commented 2 years ago

暂时没法了,成都这里现在连IPV6都封完了。。。

如果是域名被封,过些时(比如一个月)可能会好。但可能一下又被封了。一定不要用本地的DNS (那样就暴露了你的CNAME了),不要在申请域名的网站上设置CNAME, 在CF上设置CNAME要好些。

loveinlastnight commented 2 years ago

不是域名被封,域名解析到其他服务器,访问正常

Quantum2Bits commented 2 years ago

不是域名被封,域名解析到其他服务器,访问正常

可能是本地的DNS搞的鬼,就是所谓的DNS污染。在GotoX里用DNS over HTTPS吧。你在用ping的时候就是在用本地的DNS,这样你的域名的信息就在本地DNS服务器的cache里了。

SeaHOH commented 2 years ago

CNAME 记录和主机配置是完全不同的独立的两个概念与操作,就好比车辆绑定驾驶证,两者之间没有任何必然的关联。如果相互不匹配,相关域名就无法正常连接和使用,包括且不限于 IP 受限、SNI 不匹配、Host 不匹配、证书不匹配、客户端验证失败等。

任何 DNS 记录包括 CNAME 记录修改后会延迟不定时间才生效,主机配置则是立即生效。

针对 https/TLS,GFW 会检测 IP、SNI 和总连接数,分别对应实施黑洞、RST 和丢包这些方法来干扰封禁。CNAME 不在检测范围内,既费力又无用。

GFW 可能会在以下几种情况获知域名相关信息:

lshilshi commented 2 years ago

请问,有啥新的免费worker吗? 抱歉,我是只会跟着wiki走的小白……

tnblys commented 2 years ago

我是小白。。捣鼓了半天还是“_create_ssl_connection 'work1.xxx.tk' 返回 timeout('timed out'),重试”

请问 我申请了域名,比如是xxx.tk,

然后cf 的DNS 里面 设置 了 A xxx.tk 11.11.11.11 , proxied Cname work1, work1.domain.workers.dev, proxied route 也设置了 work1.uzjh.tk work1 production

我直接访问 work1.xxx.tk, 显示是OK。

然后我gotox里面设置单worker, cfw_params 里面的 workers.dev 改成 .tk, config 里面 设置为如下 subdomain = xxx.tk workers = work1

但是还是不行。。我试了subdomain 改成xxx也不行, worker 改成 work1.xxx.tk.也不行, gotox里面一直是timeout 请问是哪里设置错了?求解答。 。谢谢!

Quantum2Bits commented 2 years ago

我是小白。。捣鼓了半天还是“_create_ssl_connection 'work1.xxx.tk' 返回 timeout('timed out'),重试”

请问 我申请了域名,比如是xxx.tk,

然后cf 的DNS 里面 设置 了 A xxx.tk 11.11.11.11 , proxied Cname work1, work1.domain.workers.dev, proxied route 也设置了 work1.uzjh.tk work1 production

我直接访问 work1.xxx.tk, 显示是OK。

然后我gotox里面设置单worker,

到这里就可以了。后面的不要。

cfw_params 里面的 workers.dev 改成 .tk, config 里面 设置为如下 subdomain = xxx.tk workers = work1

但是还是不行。。我试了subdomain 改成xxx也不行, worker 改成 work1.xxx.tk.也不行, gotox里面一直是timeout 请问是哪里设置错了?求解答。 。谢谢!

tnblys commented 2 years ago

到这里就可以了。后面的不要。

谢谢解答! 我改回来了试了还是timeout。。 请问您指的是只在config里面的 "worker = work1.workers.dev" 改成 "worker = work1.xxx.tk"就可以了么?

我改成了"worker = work1.xxx.tk" 还是显示“_create_ssl_connection 'work1.xxx.tk' 返回 timeout('timed out'),重试”

Quantum2Bits commented 2 years ago

到这里就可以了。后面的不要。

谢谢解答! 我改回来了试了还是timeout。。 请问您指的是只在config里面的 "worker = work1.workers.dev" 改成 "worker = work1.xxx.tk"就可以了么?

我改成了"worker = work1.xxx.tk" 还是显示“_create_ssl_connection 'work1.xxx.tk' 返回 timeout('timed out'),重试”

是的。可能是绑定没有搞好吧。你的域名设置里面work1.xxx.tk的CNAME是你的work1.workers.dev,在你的work1.workers.dev里route的设置是work1.xxx.tk

SeaHOH commented 2 years ago

是的。可能是绑定没有搞好吧。你的域名设置里面work1.xxx.tk的CNAME是你的work1.workers.dev,在你的work1.workers.dev里route的设置是work1.xxx.tk

已经绑定成功,不是这个问题。

@tnblys 请按照 https://github.com/SeaHOH/GotoX/issues/229#issuecomment-1121961202 说明填入 work1.xxx.tk 域名解析结果的 IP。

tnblys commented 2 years ago

@tnblys 请按照 #229 (comment) 说明填入 work1.xxx.tk 域名解析结果的 IP。

您好,谢谢解答! 我换了3.8.8,好像不会timeout了。。现在“使用cfw代理”访问网站浏览器都会出现 “”“ Your connection is not private Attackers might be trying to steal your information from cn.bing.com (for example, passwords, messages, or credit cards). Learn more NET::ERR_CERT_AUTHORITY_INVALID ”“” 然后 gotox显示: “”“ 21:45:22 E L4:3289-> 伪造加密连接失败:host='content-autofill.googleapis.com',Error([('SSL routines', 'ssl3_read_bytes', 'sslv3 alert certificate unknown')]) Traceback (most recent call last): File "E:\deployed\GotoX-master\local\ProxyHandler.py", line 1205, in do_FAKECERT ssl_sock.do_handshake_server_side() File "E:\deployed\GotoX-master\local\compat\openssl.py", line 90, in do_handshake_server_side self.iowait(self._connection.do_handshake) File "E:\deployed\GotoX-master\local\compat\openssl.py", line 37, in iowait return io_func(*args, **kwargs) File "D:\Anaconda3\lib\site-packages\OpenSSL\SSL.py", line 1934, in do_handshake self._raise_ssl_error(self._ssl, result) File "D:\Anaconda3\lib\site-packages\OpenSSL\SSL.py", line 1671, in _raise_ssl_error _raise_current_error() File "D:\Anaconda3\lib\site-packages\OpenSSL_util.py", line 54, in exception_from_error_queue raise exception_type(errors) OpenSSL.SSL.Error: [('SSL routines', 'ssl3_read_bytes', 'sslv3 alert certificate unknown')] ”“”

我试了删了证书重新导入证书也没用。。请问这是什么新问题? 感谢解答!

SeaHOH commented 2 years ago

@tnblys 确保有正确导入证书,且浏览器和 GotoX 都有关闭再重启.

tnblys commented 2 years ago

@SeaHOH 重启下电脑雀食好了。hhhh.。。。。。感谢作者大大!!

performcanhe commented 2 years ago

@SeaHOH 我还是没搞定啊。求助。 我已经在CF网站添加自己的域名,并且直接访问自己的域名显示OK。但GotoX失败。

GotoX配置里面worker填写自己的域名 work1.mydomain.xyz

Config.ini 配置如下: ... worker=work1.mydomain.xyz explodeip = 0 iplist =172.64.1.1 ...

得到错误日志如下: 16:26:55 W 172.64.1.1 _create_ssl_connection 'work1.mydomain.xyz' 返回 timeout('timed out'),重试 16:26:56 W 172.64.1.1 _create_ssl_connection 'work1.mydomain.xyz' 返回 timeout('timed out'),重试

我使用 wget 测试域名,一切正常如下:

me@pc:~$ wget https://work1.mydomain.xyz --2022-05-26 16:24:21-- https://work1.mydomain.xyz/ Resolving work1.mydomain.xyz (work1.mydomain.xyz)... 172.64.1.1 Connecting to work1.mydomain.xyz (work1.mydomain.xyz)|172.64.1.1|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 3 [text/plain] Saving to: ‘index.html.1’

index.html.1 100%[======================================================================================================>] 3 --.-KB/s in 0s

2022-05-26 16:24:22 (1.02 MB/s) - ‘index.html.1’ saved [3/3]

me@pc:~$ cat index.html.1 OK.

performcanhe commented 2 years ago

认真翻阅了前面的帖子,最终解决了问题。

gotox 的配置没问题。

是CF的route配置错误。

错误的配置: work1.mydomain.xyz work1.myworker.worker.dev production

这样的配置是无法connect成功,所以才会connect time out.

正确的配置应该是: https://work1.mydomain.xyz/* work1.myworker.worker.dev production 关键就在于那个星号。

LSCube7 commented 2 years ago

绑定域名有个潜在的问题:设定的CNAME有workers.dev, 现在的墙是要查CNAME的。曾经有过这样的经历。不知有什么方法可以避免CNAME被查。

不是吧,Cloudflare的官方文档写的是添加子域名用100::的AAAA记录,直接解析到Cloudflare本地

SeaHOH commented 6 months ago

@nbzdwss78 自定义域名同时配置多个 worker 需要修改源码,就是你引用的 CFWFetch.py 部分内容。

否则,如果你的服务和域名只匹配特定 IP,请尝试追加如下设置:

[cfw]
explodeip = 0
iplist = ip1|ip2|...