使用被封禁的代理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