使用被封禁的代理IP之后,您可能需要清除Cookie才能退出被封禁状态。

TCB desync

TCB desync通过注入或修改特定TCP数据包来欺骗GFW的深度包检测。例如加利福尼亚大学河滨分校的研究人员在ACM IMC 2017会议上发表的论文《Your State is Not Mine: A Closer Look at Evading Stateful Internet Censorship》,文中提出注入特制数据包可以使GFW的TCP状态机(TCP Control Block)与实际状态“脱同步”(desync),从而绕过GFW的深度包检测手段,是为TCB desync。[1]

此类方法的历史更早可追溯到2010年终止的西厢计划,其简单实现了1998年T. Ptacek等人提出的注入方法规避入侵检测系统(防火长城)。

本文列出一些当前可用的实现了TCB desync的反审查软件。

Xray

XTLS/Xray-core的v1.8.3版本引入了TCP和TLS分段支持,可以规避GFW的SNI重置攻击。[2]使用方法如下:

从GitHub发布页下载最新版本的Xray内核。

在config.json中添加如下配置(以TLS分片为例):{

"dns": {

"hosts": {

"regexp:(upload|map)\\.wikimedia\\.org": [

"185.15.59.240",

"185.15.58.240",

"208.80.153.240",

"208.80.154.240",

"2620:0:861:ed1a::2:b",

"2620:0:860:ed1a::2:b",

"2620:0:863:ed1a::2:b",

"2a02:ec80:300:ed1a::2:b",

"2001:df2:e500:ed1a::2:b",

"2a02:ec80:600:ed1a::2:b"

],

"domain:wikipedia.org": [

"185.15.59.224",

"185.15.58.224",

"208.80.153.224",

"2620:0:863:ed1a::1",

"2001:df2:e500:ed1a::1",

"2a02:ec80:600:ed1a::1 ",

"2a02:ec80:300:ed1a::1",

"2620:0:860:ed1a::1",

"2620:0:861:ed1a::1"

]

}

},

"inbounds": [

{

"listen": "0.0.0.0",

"port": "1083",

"protocol": "socks",

"settings": {

"auth": "noauth",

"udp": true,

"ip": "0.0.0.0"

}

}

],

"outbounds": [

{

"protocol": "freedom",

"domainStrategy": "UseIP",

"settings": {

"fragment": {

"length": "100-200",

"interval": "1-2",

"packets": "tlshello"

}

},

"streamSettings": {

"sockopt": {

"tcpNoDelay": true

}

}

}

]

}

使用./xray -c /path/to/config.json启动Xray内核。

配置浏览器使用Xray代理(上例中为SOCKS5协议,端口1083)。注意勾选通过代理查询DNS的选项。

GoodbyeDPI

若您使用64位Windows系统,可以在这个页面下载GoodbyeDPI,解压后运行2_any_country_dnsredir.cmd即可;

TCPioneer及phantomsocks

维基教科书中的相关电子教程:GhosTCP

维基教科书中的相关电子教程:Phantomsocks

对于Windows系统,您也可以在 WhiteCutey/TCPioneer-Hmoegirl下载TCPioneer,解压后运行tcpioneer.exe即可。TCPioneer的默认配置文件为default.conf,包括对各个域名使用的desync策略,并支持类似Hosts文件的域名到IP地址的映射,如果您发现使用上述链接内的内置default.conf存在访问问题,请尝试替换为这个配置文件。

如果您使用macOS或Linux系统,可以使用 macronut/phantomsocks。

域前置

域前置可以让用户向防火长城展示经过伪装的访问信息,借此避开SNI封锁,也就是说虽然访问的是维基百科,但在防火长城看来是在访问别的网站,从而使得连接不会被中断。

除位于美国旧金山、阿什本及新加坡的服务器IP地址外,维基媒体基金会的其他服务器IP地址可以正常直接连接,但是仍然会受到防火长城连接重置和针对HTTPS的SNI检测的干扰影响,所以可以通过使用多种方法实现域前置,规避防火长城的SNI检测,访问各个语种版本的维基百科和中文维基语录等项目。

Chromium内核浏览器启动参数

对于Windows系统中采用Chromium内核的浏览器(如Chrome、Opera、Vivaldi、Brave、Microsoft Edge等),我们可以在其快捷方式中追加--host-rules参数,从而使其连接维基百科时不使用原本的SNI,而是使用其他未被GFW检测的SNI,从而绕过SNI检查。[3]

方法如下所述:

右键单击浏览器快捷方式;

打开属性窗口;

在“目标”后加入 --host-rules="MAP *.wikipedia.org wikidata.org, MAP commons.wikimedia.org wikidata.org" --host-resolver-rules="MAP upload.wikimedia.org 208.80.154.240, MAP wikidata.org 185.15.59.224"

重启浏览器即可。

Sheas Cealer

SpaceTimee/Sheas-Cealer可以自动化生成上述启动参数并启动浏览器,从而减少人工操作的复杂性。该程序的自带配置涵盖了维基媒体基金会、Internet Archive等大多数支持域前置的网站。

Firefox浏览器补丁

此方法操作起来较为复杂,需要用户具有相当的计算机相关知识。若您有足够能力,可以查看这个页面来进一步了解。您也可以直接下载构建好的版本。

本地反向代理

快捷方式H:NGINX

mashirozx/Pixiv-Nginx提供了一个完整配置方法,配置后直接运行Nginx即可。如需要停止服务,可使用nginx -s quit命令或在任务管理器(Windows系统)或使用sudo pkill nginx命令(Linux系统)直接终止Nginx进程。

本地代理工具

有一些代理工具也实现了域前置,它们可能将其称为“伪造SNI”或其他名称。关于如何使用其访问维基百科,请参阅其文档。

URenko/Accesser

SeaHOH/GotoX