**西厢计划**提供了一组工具，使用户能够繞過和规避中华人民共和国防火长城的DNS污染，TCP连接重置等手段，直接访问目被封鎖的網站。其命名是为了向中国古典文学史上"翻墙"的先驱者张生致敬。西厢计划由於各種原因而於2010年暫停更新，最後發佈的一個版本目前已由於防火长城的更新而無法使用，但在當時的测试中已可以直接訪問YouTube。

計劃與設想
-----

西廂計劃與其他的翻牆工具不同，它並不是代理服務或VPN，而是從技術層面避開防火长城的封鎖手段，如TCP 连接重置、DNS劫持、IP封锁和URL关键字过滤。西厢计划含有三种特性：

* TCP连接混淆：在每次连接中，通过对防火长城的入侵检测系统进行注入，與正常的连接混淆，使得防火长城无法正确解析连接和检测关键词，从而避開關鍵字過濾。
* 反DNS劫持：通过匹配防火长城伪包的指纹并将其过滤，從而使一般的DNS解析也能获得正确的结果，但需要使用未受污染的DNS，例如Google Public DNS。
* 單向隧道：利用防火長城僅僅對出站的數據包進行過濾的特性，将發出的数据包透過不受過濾的服务器中转，而收到的数据包可直接穿过防火長城到达客户端。這種情況下，由於防火長城无法獲取請求URL，关键词过滤也將失效。當時的測試中，以這種方法觀看經由HTTP協議傳輸的在线视频時，中转服务器仅耗费极小的流量。

技術原理
----

西厢计划采取了T. Ptacek等在1998年的论文中提出避開入侵检测的注入方法，即发出特制报文，使得这些报文对对方没有效果，但是让入侵检测系统错误地分析协议，从而让其错误地认为连接被提前终止了。由于防火长城的TCP栈非常简陋，因此可利用此特性，对所有遵守RFC的目标主机都采取特定措施，让防火长城无法正确解析TCP连接，从而避開关键词监测。

局限
--

西厢计划的连接混淆功能对于基于IP地址的封锁和其他无状态的封锁不能生效，因为它需要通过注入攻击改变防火长城的连接状态，如果封锁与连接状态无关便无法进行连接混淆。另外，连接混淆的实现假设连接双方遵守RFC。有一些目标主机或者防火墙不遵守RFC，可能导致正常不含关键词的连接被对方终止或者忽略，這可以經由使用ipset把作用范围限制在需要的地址段而避免。

西厢计划目前依赖Linux内核的Netfilter功能，因此要求用户平台是Linux，其他平臺的移植項目功能均有所缺失。Windows平臺上曾有一個基於WinPcap的編譯版本实现了连接混淆的部分，但已不再维护。

由於防火长城的伪包指纹經常變動，因此用户需要不斷更新才能正常使用反DNS劫持。

後續
--

西廂計劃後來發展出第二季與第三季兩個項目。第二季實現了單向隧道，而第三季則是對西廂計劃的後續開發，但兩者都是獨立的項目。

在ACM IMC 2017会议上，加利福尼亚大学河滨分校的研究人员发表了论文《Your State is Not Mine: A Closer Look at Evading Stateful Internet Censorship》（PDF），论文中提到防火长城在检测到特殊报文时会进入「重同步」状态，显然是当时应对西厢计划的策略。他们提出了绕过防火长城的新策略，新策略的平均成功率在90%以上，最高达到98%。

外部链接
----

* 西廂計劃 Wiki
* 自由亚洲电台.. 2010-03-11  [2010-03-18]. （原始内容存档于2020-07-01）.
* 西厢计划 在 Google Code 的主页, 在GitHub上的备份 （页面存档备份，存于）
* 西廂計劃第二季 在 Google Code 的主頁
* 西廂計劃第三季 在 Google Code 的主頁，在 GitHub 的主頁 （页面存档备份，存于）
* 西厢计划原理小解 （页面存档备份，存于）

参见
--

* Geneva
* GoodbyeDPI

參考資料
----

1. ↑  Thomas H. Ptacek, Tomothy N. Newsham.  (PDF). 1998  [2021-04-14]. （原始内容存档 (PDF)于2018-01-07） （美国英语）.
2. ↑  Wang, Zhongjie.  (PDF). 2017  [2021-04-14]. doi:10.1145/3131365.3131374. （原始内容存档 (PDF)于2018-06-20） （美国英语）.



|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * 
* 论
* 编
網際網路審查規避技術 |
| --- |
|  |
| 背景 | 
* 互联网审查
	+ 中国网络审查
	+ 國家區域網路
* 审查与封锁技术
	+ DNS污染
	+ IP封锁
	+ 路由黑洞
		- BGP劫持
	+ TCP重置攻击
	+ 深度包检测
* 对特定网站的封锁
	+ 维基媒体
	+ Facebook
	+ 推特

 |
|  |
| 原理 | 

|  |  |
| --- | --- |
| 借助代理服务器 | 
* P2P
* 网页代理
* SSH
* VPN
* 代理自动配置
* 反向代理

 |
|  |
| 不借助代理服务器 | 
* HTTPS
* desync
* Hosts
* DNSCrypt
* 域前置
* ESNI/ECH
* 折射网络

 |

 |
|  |
| 連線软件 | 

|  |  |
| --- | --- |
| 自由软件 | 
* 賽風
* ~~西厢计划~~
* ~~fqrouter~~
* ~~GoAgent~~ → XX-Net
* Shadowsocks
	+ Outline VPN
	+ ~~ShadowsocksR~~
* ~~V2Ray~~
	+ V2Fly
* Clash
* VPN Gate
* WireGuard
* ~~INTANG~~
* Trojan
* Geneva
* Tcpioneer
* GoodbyeDPI

 |
|  |
| 专有软件 | 
* 自由门
* 无界浏览
* Hotspot Shield
* ~~世界通~~
* ~~逍遥游~~
* ~~火凤凰~~
* ~~花园网~~
* ~~Puff~~
* Telex
* 自由浏览
* ~~Tuber浏览器~~
* ExpressVPN
* 蓝灯

 |
|  |
| 浏览器扩展 | 
* ~~uProxy~~
* ~~红杏~~

 |

 |
|  |
| 匿名代理 | 

|  |  |
| --- | --- |
| 匿名软件 | 
* Tor
* I2P
* JAP

 |
|  |
| 匿名P2P（英语：）网络 | 
* ZeroNet
* Freenet
* StealthNet

 |

 |
|  |
| 相关团体 | 
* GreatFire
	+ 自由微博
	+ 自由浏览
* NetBlocks
* 全球网络自由联盟
* Turkey Blocks
* 互联网干预开放观察

 |
|  |
| 相關人物 | 
* 阮曉寰

 |
|  |
| ~~删除线~~：原开发者停止维护。 |

 |