bypass-GFW-SNI / main

突破 GFW 的 SNI 封锁
Other
376 stars 35 forks source link

使用伪造的 SNI #4

Open SeaHOH opened 5 years ago

SeaHOH commented 5 years ago

某些被封禁域名使用了非独立 IP 的 CDN,例如 Cloudflare 免费版,因此强制需要 SNI,否则无法成功握手。或者因为配置了多证书,导致返回的默认证书并非欲访问域名。

关于这点,可以通过设置伪造的 SNI 来解决。比如:

  1. www.blocked-example.com 被封 SNI,且符合以上条件。
  2. 连接时把 SNI 设为任意次级域名,如 any-noblocked.blocked-example.com 即可正确连接。
  3. 如果被封的只是主站域名,还有其它域名未被封锁,且使用同一台服务器提供服务, 那么也可以把 SNI 设置为这个未封锁域名。

我在自己的工具里验证过了,建议你也可以增加这个设置。

bypass-GFW-SNI commented 5 years ago

谢谢。这个需要额外配置,用量大时再考虑。

tec1987 commented 5 years ago

逻辑上可以使用如下方式简单修改: 一、对CDN返回的特定证书做判断处理,使用次级/未封锁域名再次请求。 二、直接加一步判断,当返回证书不符时,使用次级/未封锁域名再次请求证书。

逻辑2貌似更加容易些

ghost commented 3 years ago

现在 Cloudflare 免费版已经不可能域前置了

服务器会验证 SNI 和头里的 Host 是否包含相同域名