Android版本Shadowsocks应用程序的标志
**Shadowsocks**（简称**SS**）是一種基於Socks5代理方式的加密傳輸协议，也可以指实现這個协议的各種开发包。目前有各种版本使用Python、C、C++、C#、Go语言、Rust等程式語言开发，大部分主要实现（iOS平台的除外）採用Apache许可证、GPL、MIT許可證等多種自由軟體許可協定開放原始碼。Shadowsocks分为服务器端和客户端，在使用之前，需要先将服务器端程序部署到服务器上面，然后通过客户端连接并建立本地代理。

在中国大陆，本工具广泛用于突破防火长城（GFW），以浏览被封锁、屏蔽或干扰的内容。2015年8月22日，Shadowsocks原作者Clowwindy稱受到了中国警方的压力，宣布停止维护此计划（项目）并移除其GitHub个人页面所存储的源代码。

历史
--

Shadowsocks最早由V2EX用户"clowwindy"2012年4月发布在该论坛。

### 项目转手

2015年8月22日，其作者Clowwindy在GitHub上稱，警察在兩日前要求他停止開發Shadowsocks專案並刪除其所有代碼。之後，作者停止維護Shadowsocks，其GitHub專案頁面已被清空。消息传出后，许多中国大陸和外国开发商，以及Shadowsocks用户，在GitHub中对作者表示了致谢，对已清空原始碼的项目頁面加星标，因此在当时Shadowsocks反而成为了GitHub上的「热门项目（Trending）」。本以為是當局主動出擊，但另有消息据称，原作者曾作出的「透露中國社會現狀」的發言可能遭到某些中華人民共和國政府支持者的檢舉，從而為後來被要求撤下專案原始碼的事件埋下伏筆，而類似的因個人網路發言而被檢舉的事件在中國大陸也「時有發生」。

8月25日，另一个用于突破网络审查的GoAgent项目也被作者自行删除。删除后几小时之内，GitHub遭到了来自中国大陸的DDoS攻击。據報这次攻击与中華人民共和国政府有关，因為中国政府此前曾要求GitHub移除兩個对抗網絡審查的項目但沒有被接受。

2015年8月28日，电子前哨基金会针对Shadowsocks和GoAgent被删除一事发表评论，对中華人民共和国政府针对用于突破网络封锁软件作者的打击表示"强烈谴责"。

Git倉庫的日誌顯示該項目被移除以前就有大量的復刻副本，不少副本仍然有用戶維護。所以儘管Shadowsocks專案頁經過此次打擊，也陸續恢復了內容，甚至本身並转交由多人維護成不同版本，各大Linux发行版的軟體倉庫均有各式Shadowsocks的實作的套件仍持續更新可用，目前的Shadowsocks更新基本上來自這些作者執行。

运行原理
----

Android版本Shadowsocks应用程序
Shadowsocks的运行原理与其他代理工具基本相同，使用特定的中转服务器完成数据传输。例如，用户无法直接访问Google，但代理服务器可以访问，且用户可以直接连接代理服务器，那么用户就可以通过特定软件连接代理服务器，然后由代理服务器获取网站内容并回传给用户，从而实现代理上网的效果。服务器和客户端软件会要求提供密码和加密方式，双方一致后才能成功连接。连接到服务器后，典型情况下客户端会在本机构建一个本地Socks5代理（但也有构建成VPN、透明代理等形式）。浏览网络时，客户端通过这个Socks5（或其他形式）代理收集网络流量，然后再经混淆加密发送到服务器端，以防网络流量被识别和拦截，反之亦然。

### 特点

* Shadowsocks使用自行设计的协议进行加密通信。加密算法有AES-GCM、ChaCha20-Poly1305、2022-BLAKE3-AES-GCM等，除建立TCP连接外无需握手，每次请求只转发一个连接，無需保持「一直連線」的狀態，因此在移动设备上相對较為省电。
* 所有的流量都经过算法加密，允许自行选择加密算法。
* Shadowsocks通过异步I/O和事件驱动程序运行，响应速度快。
* 客户端覆盖多个主流操作系统和平台，包括Windows、macOS、Android、Linux和iOS系统和路由器（OpenWrt）等。

### 安全性

Clowwindy称Shadowsocks的最初只是「自用」，用来「翻墙」，而不是提供密码学意义的安全，所以Shadowsocks自行设计的加密协议对双方的身份验证仅限于预共享密钥（英语：），亦无完全前向保密，也未曾有安全专家公开分析或评估协议及其实现。

> 一个用 Python 写的 socks 加密代理。加密方法很简单，不过欺骗 GFW 足够了。
> 
> ——clowwindy

Shadowsocks的目标不在于提供完整的通信安全机制，主要是为了协助上网用户在严苛的网络环境中突破封锁，不能替代TLS或者VPN。

AEAD加密方式（AES-GCM、Chacha20-poly1305）在SIP004提案提出并在SIP007提案实现，这些加密方式被认为可以提供密码学意义的安全（「保密性，完整性，可用性」），之前AES CFB、AES CTR、RC4、Chacha20等没有认证的加密方式仍在一部分实现中被允许存在。Shadowsocks-windows已经移除了非AEAD加密方式的支持。

Shadowsocks多次被提到协议设计问题，有被主动探测的风险：

* 2015年，ShadowsocksR的原开发者breakwa11提到原协议设计导致没有验证数据包完整性而被主动探测的风险，之后Shadowsocks的后继开发者madeye引入One Time Auth（OTA）方案试图解决，但breakwa11指出还是不能避免主动探测风险，最终引入AEAD加密方式并放弃OTA方案。
* 2021年2月28日，GitHub用戶RPRX提出Shadowsocks AEAD加密方式设计存在严重漏洞，无法保证通信内容的可靠性，隨後開發者驗證了本地echo自交思路的可行性。3月1日，RPRX又提出可利用服务端防重放機制使Shadowsocks、Vmess等未知流量代理实质性失效，隨後讨论区中的一个名为gfw-report的用户驗證了這一思路的可行性。

### 插件及流量混淆

2017年9月21日，一篇名为《The Random Forest based Detection of Shadowsock's Traffic》的论文在IEEE发表，该论文介绍了通过随机森林算法检测Shadowsocks流量的方法，并自称可达到85％的检测精度，雖然該論文的有效性遭到网友质疑。但是使用机器学习來識別網路流量特徵的做法被认为是可行的，而且還適用於任何網路代理協定而不僅僅侷限於Shadowsocks。

Shadowsocks在SIP003提案中支持了插件，插件让Shadowsocks的流量可以通过不同的插件进行混淆加密或其他处理。目前使用较多的插件有v2ray-plugin、simple-obfs等。

### 實作

目前Shadowsocks有多個實作支援，以自由軟體形式發佈的主要有

* 原始shadowsocks（以Python語言編寫）
* shadowsocks-libev（C语言编写，目前仅修复BUG）
* openwrt-shadowsocks
* shadowsocks-rust（Rust语言编写，libev版本停止新功能开发之后的继任活跃开发版本）
* go-shadowsocks2
* gost

* libQtShadowsocks
* shadowsocks-qt5（客户端）
* shadowsocks-android（客户端）
* shadowsocks-windows（客户端）
* ShadowsocksX-NG （客户端）
* ShadowsocksR（Shadowsocks的第三方分支版本）
* Outline
* V2Ray
* Brook
* Trojan
* Clash

等等，還有為數甚多的免費軟體及商業軟體。

ShadowsocksR
------------

ShadowsocksR的标志
Android版本ShadowsocksR应用程序
ShadowsocksR（简称SSR）是网名为breakwa11的用户發起的Shadowsocks分支，在Shadowsocks的基础上增加了一些資料混淆方式，称修复了部分安全问题并可以提高QoS优先级。后来貢獻者Librehat也为Shadowsocks补上了一些此类特性，甚至增加了类似Tor的可插拔传输层功能。

ShadowsocksR開始時曾有过违反GPL、发放二进制时不发放源码的争议，使得原開發作者不滿。不过后来ShadowsocksR项目由breakwa11转为了與Shadowsocks相同的GPL、Apache許可證、MIT許可證等多重自由軟體許可协议。

2017年7月19日，ShadowsocksR作者breakwa11在Telegram频道ShadowsocksR news裡转发了深圳市启用SS协议检测的消息并被大量用户转发，引发恐慌。7月24日，breakwa11发布了闭源的SS被动检测程序，引发争议。7月27日，breakwa11遭到自称"ESU.TV"（恶俗TV）的不明身份人士人身攻击，对方宣称如果不停止开发并阻止用户讨论此事件将发布更多包含个人隐私的资料，随后breakwa11表示遭到对方人肉搜索并公开个人资料的是无关人士，为了防止对方继续伤害无关人士，breakwa11将删除GitHub上的所有代码、解散相关交流群组，停止ShadowsocksR项目。但项目已被多人fork，并有人在其基础上继续发布新的版本，例如较为知名的SSRR（ShadowsocksRR）。

參考資料
----

1. 1 2 3 4  clowwindy.. 2012-04-20. （原始内容存档于2014-07-19）.
2. ↑  .
3. ↑  .
4. ↑  .
5. ↑  .
6. ↑ . 2015-08-20  [2016-02-03]. （原始内容存档于2016-02-03）.
7. 1 2  O'Brien, Danny.. 电子前哨基金会.  [2016-05-28]. （原始内容存档于2016-06-24） （英语）. （中文翻译）
8. ↑  clowwindy.. GitHub.  [2015-08-22]. （原始内容存档于2015-08-22） （英语）. Two days ago the police came to me and wanted me to stop working on this. Today they asked me to delete all the code from GitHub. I have no choice but to obey.
9. ↑  clowwindy.. GitHub. 2015-08-22  [2015-08-22]. （原始内容存档于2015-08-22）.
10. ↑  clowwindy.. GitHub. 2015-08-22  [2015-08-22]. （原始内容存档于2015-08-22） （英语）.
11. ↑  percy.. GreatFire. 2015-08-26  [2016-01-16]. （原始内容存档于2015-10-02） （中文）.
12. ↑  Vergil.. pao-pao.net.  [2016-08-18]. （原始内容存档于2016-08-08）. （中文）
13. ↑  Catalin Cimpanu.. Softpedia. 2015-08-29  [2016-01-16]. （原始内容存档于2016-05-06） （英语）.
14. ↑ .  [2015年12月11日]. （原始内容存档于2015年12月4日） （英语）.
15. ↑ .  [2015-09-05]. （原始内容存档于2015-09-04） （英语）.
16. ↑  Mygod.. 2017-01-12  [2021-06-14]. （原始内容存档于2020-10-16）.
17. ↑  riobard.. 3017-02-10  [2021-06-14]. （原始内容存档于2020-10-16）.  请检查`|date=`中的日期值 (帮助)
18. 1 2 . Shadowsocks.org.  [2021-06-14]. （原始内容存档于2021-02-26）.
19. ↑ . GitHub.  [2021-02-28]. （原始内容存档于2021-07-18）.
20. ↑ . GitHub.  [2021-03-01]. （原始内容存档于2021-07-18）.
21. ↑  Deng, Z.; Liu, Z.; Chen, Z.; Guo, Y.. 2017 9th International Conference on Intelligent Human-Machine Systems and Cybernetics (IHMSC). August 2017, **2**: 75–78  [2018-02-05]. doi:10.1109/IHMSC.2017.132. （原始内容存档于2018-02-06）.
22. ↑  VV, 特約撰稿人.. 端傳媒.  [2018-04-07]. （原始内容存档于2018-06-28） （中文（香港））.
23. ↑  madeye.. GitHub. 2017-01-04  [2021-06-14]. （原始内容存档于2020-10-03）.
24. ↑ .  [2022-12-02]. （原始内容存档于2022-12-02）.
25. ↑ . getoutline.org.  [2018-04-06]. （原始内容存档于2018-03-30） （英语）.
26. ↑ . v2ray.com.  [2020-06-11]. （原始内容存档于2020-06-11）.
27. ↑ . GitHub.  [2018-06-05]. （原始内容存档于2018-06-17） （英语）.
28. ↑  trojan.. trojan.  [2021-02-15]. （原始内容存档于2021-05-30）.
29. ↑  Fndroid, 2022-11-17  [2022-11-17], （原始内容存档于2023-01-14）
30. ↑ . breakwa11.github.io.  [2017-03-24]. （原始内容存档于2017-02-07）.
31. ↑ . shadowsocks.org.  [2017-03-24]. （原始内容存档于2017-03-25） （英语）.
32. ↑  breakwa11.. GitHub.  [2017-06-24]. （原始内容存档于2017-07-25）.
33. ↑  CK、吴晶、瑞哲.. Radio Free Asia. 2018-01-25  [2019-03-31]. （原始内容存档于2019-03-31）.

注解
--

外部链接
----

* 官方网站 在维基数据上编辑此内容

|  |  |
| --- | --- |
|  | 維基教科書中的相關電子：**Shadowsocks** |


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

| * 
* 论
* 编
網際網路審查規避技術 |
| --- |
|  |
| 背景 | 
* 互联网审查
	+ 中国网络审查
	+ 國家區域網路
* 审查与封锁技术
	+ 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
* 互联网干预开放观察

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

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

 |