Shadowsocks(影梭)是使用Python等语言开发的、基于 Apache 许可证开源的代理软件。Shadowsocks 使用socks5代理,用于保护网络流量。在中国大陆被广泛用于突破防火长城(GFW),以浏览被封锁的内容。
Shadowsocks 分为服务器端和客户端。在使用之前,需要先将服务器端部署在支持 Python 的服务器上面shadowrocket插件节点超时,然后通过客户端连接并创建本地代理。
2015 年 8 月 22 日开发者因受到中国政府的压力,停止维护此项目。但仍有更新陆续推送。
Shadowsocks 的运行原理与其他代理工具基本相同,使用特定的中转服务器完成数据传输。
在服务器端部署完成后,用户需要按照指定的密码、加密方式和端口使用客户端软件与其连接。在成功连接到服务器后,客户端会在用户的电脑上构建一个本地 socks5 代理。浏览网络时,网络流量会被分到本地 socks5 代理shadowrocket干什么用的,客户端将其加密之后发送到服务器,服务器以同样的加密方式将流量回传给客户端,以此实现代理上网。
Shadowsocks 使用自行设计的协议进行加密通信。[3]加密算法有 AES、Blowfish、IDEA、RC4 等,除创建 TCP 连接外无需握手,每次请求只转发一个连接,因此使用起来网速较快,在移动设备上也比较省电。
Shadowsocks 通过异步 I/O 和事件驱动程序运行,响应速度快。
然而 Shadowsocks 自行设计的加密协议对双方的身份验证仅限于预共享密钥,亦无完全前向保密,也未曾有安全专家公开分析或评估协议及其实现。
Shadowsocks 不能替代 TLS 或者 VPN,本质上只是设置了密码的网络代理协议,不能用作匿名通信方案,该协议的目标不在于提供完整的通信安全机制,主要是为了协助上网用户在严苛的网络环境中。
在某些极端的环境下,通过深度包检测(DPI)也有可能识别出协议特征。为了确保安全,用户应做好额外的加密和验证措施,以免泄露信息,无论使用的服务器来源是否可靠。