457 words
2 minutes
利用域前置技术绕过GFW

利用域前置技术绕过 GFW#

2020-05-31 Personal Notes

文章目录#


前言#

在一些特殊的时期,你的科学上网服务不好用时,但又要下一些 github 上的东西或想上 Pixiv 时,这篇文章或许对你有所帮助。

原理#

HTTPS(更准确来讲是 TLS)有一个扩展,使得在 Client Hello 阶段,浏览器会向服务器明文发送要访问网站的域名。而 GFW 根据这一原理对特定的 SNI 进行阻断,这就是俗称的 SNI 阻断。更多的可以去看:维基百科

而域前置 (Domain Fronting) 技术,就是利用有的服务器不验证 SNI 的这一特点,给 GFW 和服务器一个假的 SNI。因为 GFW 没有私钥,只能通过 SNI 和 IP 判断你要访问的网站,而假的 SNI 就能欺骗 GFW。但服务器本身有私钥,解开后,服务器是通过 HTTP 请求头判断你要访问哪个网站的。(但注意,特殊的比如虚拟主机、Cloudflare 免费版等能在一个 IP 上部署多个证书的,是一定要 SNI 的,否则会出错。这种唯一的绕过办法就是 ESNI,如果有空的话,以后再讲)因此可以通过这种方式绕过 GFW 的 SNI 阻断。

一些已经完整实现的开源项目#


bypass-GFW-SNI
/
main
Waiting for api.github.com...
00K
0K
0K
Waiting...
bypass-GFW-SNI
/
proxy
Waiting for api.github.com...
00K
0K
0K
Waiting...
SeaHOH
/
GotoX
Waiting for api.github.com...
00K
0K
0K
Waiting...
SpaceTimee
/
Sheas-Cealer
Waiting for api.github.com...
00K
0K
0K
Waiting...
注意事项

有的网站比如 Twitter、Google 这类大型网站大多为 IP 黑洞,上述方式是没有用的。通常被 SNI 阻断的网站,也有 DNS 污染。请配合下面的其中一个:DNSCrypt、DNS over HTTPS (DoH)、DNS Over TLS (DoT) 使用。个人比较喜欢 DNSCrypt-proxyAdGuardHome。其中 Adguardhome 对小白来说比较友好。

利用域前置技术绕过GFW
https://main.zzzssshhh.com/posts/利用域前置技术绕过gfw/
Author
Fluorine
Published at
2025-01-02