simpread 河南地区SNI阻断解决办法
本文由 简悦 SimpRead 转码, 原文地址 blog.tsinbei.com
0、前言
前段时间研究泉州白名单的时候,查资料看到不少人报告河南全省也有出现 “白名单”,进一步调查发现河南并不是白名单,而是比通用 GFW 黑名单更严格的省 GFW 黑名单,使用的是经典的 SNI 阻断。
经过测试,河南的 SNI 阻断似乎是两道筛:第一道直接过滤 TLD,.al
这种国别域名、.xyz
和.top
这种被滥用严重的域名会直接阻断;第二道类似黑名单,即使是.com
、.net
等能通过第一道检测的域名,如果不能通过审查也会被阻断,这种审查可能是流量检测,是否符合某些协议的特征;也有可能是网站内容审查,判断是否出现敏感词。
1、解决方法
根据 GitHub 上的讨论,启用 TCP Timestamps 可以绕过这种阻断。目前来看原理并不是这种方法不会被 GFW 检测到,而应该是 GFW 直接对启用了 Timestamps 的 Client Hello 直接Bypass
(这么说似乎就是暂时对这种包没办法,笑)。
启用 TCP Timestamps:
1.1、Windows
在 PowerShell 中执行:
PowerShell
1 |
|
检测是否开启:
PowerShell
1 |
|
如第一行的值为enabled
则开启成功。
1.2、Linux
执行:
Bash
1 |
|
虽然是指令是ipv4
,但是对 IPv4、IPv6 网络同时生效。
1.3、Android
如果是安卓 13 或以上,系统已经默认开启。
在 Termux(已 Root)/ ADB Shell(未 Root)中执行:
Bash
1 |
|
检测是否开启,如输出值等于0
说明未开启。
执行:
Bash
1 |
|
或
Bash
1 |
|
即可启用。
2、相关讨论
这种方法并不是万能的,概括 GitHub 上相关讨论供参考:
TCP Timestamps 选项无法绕过位于北上广 GFW 的 SNI 阻断;
TCP Fast Open 可以绕过位于北上广的 GFW 的 SNI 阻断(仅测试了广州出口的 IPv4 和 IPv6),但是 Xray 的 TCP Fast Open 仅对 Linux 有效,在 Windows 启用无效。