使用 chrome 浏览器 SNI 伪装免代理上部分 GFW 被墙网站(更新规则文件和启动脚本)
-
前文:#224 - 使用 chromium 浏览器的 host-rules 命令行(目前)免翻墙上 pkuanvil.com 以及部分 SNI 阻断的网站
搞了一个简单的启动脚本,只需要浏览器和规则文件就可以使用,不需要代理等上网方式,可以在中国大陆直连一小部分网站(包括
github,reddit,web.archive.org,wikipedia.org,torproject.org
等等,至少目前能上)
这个方法使用的网站不多,需要网站本身不严格校验SNI,而且一般网站的不同子域名不一定部署在同一个CDN上。而且即使能直连,IP地址本身能否连上如何也是问题。不过对于能连上的那些就很有用了,对环境要求很低,只需要一个基于 Chromium 的浏览器 -
上述 Github 仓库里脚本的备份
新建一个文件夹(比如名称就叫做 GFWSNIRules),解压以后在这个文件夹启动start.py
即可(需要手动修改里面 chrome 的文件路径);rules.json
是规则文件。第一次访问某个网站记得加上https://
前缀Enjoy!
-
这个方案其实很早就有人提过了,但是网上找了一圈很少有人总结一个 SNI 伪装(SNI 前置?)的规则列表,大部分都是 gfwlist,只是被墙网站的列表
-
不懂技术,但是手动点赞一波
-
windows机器,shell不能处理有空格的路径
return r"C:\Program Files\Google\Chrome\Application\chrome.exe"
会报错
'C:'Program' 不是内部或外部命令,也不是可运行的程序
或批处理文件。不用shell的话,
subprocess.run(command_line, shell=False)
试了一下,似乎没翻墙功能,连不上reddit。
-
@butterbot 试试不加规则直接连 https://fastly.com?reddit 用的 fastly CDN
-
@admin 没有脚本也可以连上的。
另外不用shell后,不止是reddit连不上,维基百科和web.archive.org也不行 -
把chrome的路径直接改了,强行改成没空格的,试了一下,也没翻墙功能,唯一能连上的github也不确定是不是脚本的作用
-
@butterbot 可以试试把
rules.json
里面和fastly.com
那一栏对应的 IP 地址,那个会在整个文件里面重复很多遍,都替换成本地使用的 IP 地址,比如 Powershell 查询 fastly.com 的 IP 地址:Resolve-DnsName -Name fastly.com
如果 fastly.com 本身能连上的话,用 fastly CDN 的网站都应该能连上,比如 reddit
netlify CDN 也是同理,应该能连上 https://docs.rsshub.app其他的网站我就不太好说了
-
@butterbot 加双引号就行,前面忘记改了
return r'"C:\Program Files\Google\Chrome\Application\chrome.exe"'
-
@test1 机场等其他翻墙手段能够实现的体验远超您的方法,而且现在最新的翻墙手段甚至可以突破白名单的限制,免费节点也已经泛滥,无论是技术、经济还是使用体验,似乎没有什么理由需要使用您的方法。并且每个地区的墙也不一样(例如白名单),一个方法可能在您所在的地区可以用,不代表其他地区的人也可以用。我并不否认任何探索新方法的努力,如果您愿意深入交流,希望您能够列举哪些网站可用,以及可用性如何(您也提到了有的网站通过您的方法连接,可能无法浏览全部的网站功能),如果您的方法缺乏意义,无论这种方法是否有效,似乎并不值得继续探索。
-
我想问一下,你所说的免费节点已经泛滥,还符合网上流传的「免费,好用,安全」的不可能三角吗
-
@wumingshi 你好,当然不符合,但是我个人认为追求完全的免费并没有意义,如果您有更好的想法欢迎一起讨论。
-
感谢回复。
免费节点也已经泛滥,无论是技术、经济还是使用体验,似乎没有什么理由需要使用您的方法。
这个我部分程度同意,但是总有场合(或者说总有一部分用户)是缺少好的翻墙手段的。而本贴介绍的方法只需要下载这些文件然后加到 chrome 命令行里面就行,我觉得至少算是一种低门槛的备选方案
希望您能够列举哪些网站可用,以及可用性如何
可用的网站都写在
rules.json
文件里面了。使用 fastly CDN 的几个(reddit, pinterest, twitch)应该一定可用,只要你能直连 https://fastly.com 本身。就像前面说的,如果
rules.json
给出的 IP 地址151.101.1.57
连不上,但是 https://fastly.com 能直连的话,只要把151.101.1.57
替换成任何一个 fastly 的 IP 地址就行,比如换本地 DNS 解析 fastly.com 的 IP 地址。
本质上是一个优选 CDN IP 地址的问题,可能需要开新话题讨论+参考更多的文献,我也不太懂。使用 netlify CDN (https://docs.rsshub.app)和 gcore CDN(https://pkuanvil.com)的同理,
用这几个 CDN 的网站的可用性很高,只要你能直连这些 CDN 的官网,可以做到无缝连接。
wikipedia.org, web.archive.org 和 torproject.org 就只能随缘了,因为这几个不走 CDN 而且 IP 地址本身速度很慢(限速甚至断流)。
github 也是不走 CDN 的,但是它的 IP 限速情况会好一些,有些地区 IP 地址本身没限速只是检测 SNI 以后做限速。此外使用脚本做 SNI 伪装以后也可以正常访问被墙的 https://raw.githubusercontent.com/ 和 https://gist.github.com/
总结:从能连上的角度来说,可用性 (fastly, netlify, gcore) CDN > github > wikipedia.org, web.archive.org, torproject.org (and others)
从使用角度来说,我简单做了测试,写到
rules.json
里面的常见功能应该都没问题。(有些网站没加是因为它们的子域名都用的不同的CDN,还没逐一调试)一个方法可能在您所在的地区可以用,不代表其他地区的人也可以用
这个也是 IP 地址能否连上的问题,这就只能依靠大家反馈了。但是这种反馈也很粗略(用户为了保护自己隐私,能说到道省一级的那个运营商就不错了),难以测试。
作为我pkuanvil-uid1
来说,可能可以做的是给一堆 IP 地址然后逐一尝试,现在的话能连上rules.json
里面的 IP 地址就能连上,不能就不能…… -
把chrome的路径直接改了,强行改成没空格的,试了一下,也没翻墙功能,唯一能连上的github也不确定是不是脚本的作用
试试访问这两个链接,能访问 https://gist.github.com 和 https://raw.githubusercontent.com 就表示脚本有效,因为这两个域名都被墙了
git ssh 代理设置
cloudflare反向代理 -
Cleanbrowsing doh没被墙,使用后可以访问duckduckgo和github
-
经过我的修改,现在可以访问google,facebook等了
-
还有一个方案是强制使用QUIC,见此文。支持可以用QUIC的网站(目前有用CLoudFlareCDN的网站和GoogleCloud的网站)
具体来讲,这么写,命令行参数:--host-resolver-rules="MAP zh.z-library.se 172.64.145.17:443" -origin-to-force-quic-on=zh.z-library.se:443
,而且漏掉443,漏掉resolver一下子就不行。貌似有没有resolver这两条参数不是一个命令,见Electron文档。
在上海,我试了版主github上的工具,pixiv可以(好像直连的pixiv服务器,没走cloudFlare,但是如果只是改host会重置),wikipedia不行(连接已重置)。
实在令人搞不懂发生了什么。 -
但是上上面那位是怎么解决Google和Facebook的IP黑洞的?
-
能否简单提供您绕过IP黑洞的方法