OVEROUTESOVEROUTES
首页
阅读须知
  • 总览
  • 选购要点
  • 协议详解
  • 客户端使用
  • 概述
  • IP 与线路
  • 选型指南
  • 选购参考
  • 基础部署
  • 安全加固
  • 概述
  • 3X-UI
  • Xboard
  • 协议总览
  • Shadowsocks
  • Shadowsocks 2022
  • VMess
  • Trojan
  • VLESS
  • Hysteria 2
  • TUIC
  • AnyTLS
  • NaiveProxy
  • Mieru
  • ShadowTLS
  • VLESS-XHTTP
  • WireGuard
  • 传统协议
  • 孤家寡人协议
  • 软件总览
  • Mihomo
  • sing-box
  • Xray
  • V2Fly
  • dae (Linux)
  • Shadowrocket (iOS)
  • QuantumultX (iOS)
  • Stash (iOS/macOS)
  • Loon (iOS)
  • Surge (macOS/iOS)
  • NekoBox (Android)
  • Husi (Android)
  • Exclave (Android)
配置
首页
阅读须知
  • 总览
  • 选购要点
  • 协议详解
  • 客户端使用
  • 概述
  • IP 与线路
  • 选型指南
  • 选购参考
  • 基础部署
  • 安全加固
  • 概述
  • 3X-UI
  • Xboard
  • 协议总览
  • Shadowsocks
  • Shadowsocks 2022
  • VMess
  • Trojan
  • VLESS
  • Hysteria 2
  • TUIC
  • AnyTLS
  • NaiveProxy
  • Mieru
  • ShadowTLS
  • VLESS-XHTTP
  • WireGuard
  • 传统协议
  • 孤家寡人协议
  • 软件总览
  • Mihomo
  • sing-box
  • Xray
  • V2Fly
  • dae (Linux)
  • Shadowrocket (iOS)
  • QuantumultX (iOS)
  • Stash (iOS/macOS)
  • Loon (iOS)
  • Surge (macOS/iOS)
  • NekoBox (Android)
  • Husi (Android)
  • Exclave (Android)
配置
  • 主流序列

    • 代理协议总览
    • Shadowsocks
    • Shadowsocks 2022
    • VMess
    • Trojan
    • VLESS
    • Hysteria 2
  • 新生序列

    • TUIC
    • AnyTLS
  • 小众序列

    • NaiveProxy
    • Mieru
    • SS-ShadowTLS
    • VLESS-XHTTP
  • 传统与其他

    • WireGuard
    • 传统协议
    • 孤家寡人协议

Shadowsocks

Shadowsocks(简称 SS)是最具历史意义的代理协议之一,由中国开发者 @clowwindy 于 2012 年创建并开源。它以设计简洁、性能高效、生态成熟著称,时至今日仍是客户端支持最广泛的协议。

历史背景

2012 年,@clowwindy 在 GitHub 发布了 Shadowsocks 的第一个版本。其设计哲学非常明确:用最简单的方式,把本地的流量加密后转发到远端服务器。

2015 年,由于作者受到压力,原版仓库删除并停止维护。此后,社区接手了项目的维护工作,形成了 shadowsocks-libev、shadowsocks-rust、shadowsocks-go 等多个分支实现。这些实现至今仍在活跃开发中。

关于 Shadowsocks 2022

2022 年,协议进行了一次重大升级,引入了新的加密标准和更严格的安全设计,通常称为 "Shadowsocks 2022" 或 "SS-2022"。本页介绍原版 Shadowsocks 协议;2022 版本请参阅 Shadowsocks 2022 页面。

工作原理

Shadowsocks 的核心思路是在客户端和服务端之间建立一个加密的代理隧道:

本地应用
   |
   v
SS 本地客户端(socks5 监听)
   |  [对称加密]
   v
SS 远端服务器
   |  [解密]
   v
目标网站

具体流程如下:

  1. 本地客户端在本机启动一个 SOCKS5 代理监听端口
  2. 系统或应用将流量发送到这个本地 SOCKS5 端口
  3. 客户端使用预共享的密码和加密方式,将流量加密后发送至远端 SS 服务器
  4. 远端服务器解密流量,代为访问目标地址,将响应加密返回
  5. 客户端解密响应,转交给本地应用

与 Trojan 或 VLESS 不同,Shadowsocks 不依赖 TLS,它使用自定义的应用层加密协议。这既是它的优点(性能高、无需证书),也是它的弱点(协议指纹相对明显)。

加密方式

Shadowsocks 支持多种加密方式,不同方式的安全性和性能差异显著。

AEAD 加密(推荐)

AEAD(Authenticated Encryption with Associated Data)同时提供加密和消息认证,能有效防止数据篡改和重放攻击。

加密方式密钥长度说明
aes-256-gcm256 位硬件加速支持好,推荐在服务器端使用
aes-128-gcm128 位性能略优于 256 位版本,安全性足够
chacha20-ietf-poly1305256 位软件实现性能好,推荐在移动设备或无 AES 硬件加速的设备上使用

流加密(已弃用)

以下加密方式存在已知安全漏洞,不应继续使用:

加密方式问题
aes-256-cfb无消息认证,容易遭受主动探测
aes-128-cfb同上
rc4-md5RC4 算法已被破解,MD5 认证强度不足
chacha20无消息认证的旧版本

强烈建议

请只使用 AEAD 加密方式(aes-256-gcm、aes-128-gcm 或 chacha20-ietf-poly1305)。旧式流加密方式在实际网络环境中已被证明容易遭受主动探测攻击,使用它们会带来不可预期的安全风险。

混淆插件

原始的 Shadowsocks 协议没有针对深度包检测(DPI)的专门设计。为了提升抗检测能力,社区开发了多种混淆插件,通过将 SS 流量伪装成其他协议来规避检测。

obfs(simple-obfs)

最早也是最广为人知的混淆插件,将 SS 流量伪装为 HTTP 或 TLS 流量。由于伪装较为简单,对抗强力检测时效果有限,目前已逐渐被 v2ray-plugin 取代。

v2ray-plugin

使用 V2Ray 的 WebSocket 或 gRPC 传输方式对 SS 流量进行封装,可以搭配 TLS 证书使用,流量看起来像正常的 HTTPS WebSocket 连接。配置复杂度高于 obfs,但抗检测能力更强。

Cloak

提供更强的流量伪装,将 SS 流量隐藏在看似正常的 HTTPS 会话中,并支持多用户和流量统计。

xray-plugin

与 v2ray-plugin 类似,但基于 Xray 内核,支持更多传输方式。

关于插件的现实情况

在现代的代理实践中,如果需要强力的抗检测能力,通常会直接选用 VLESS + Reality 或 AnyTLS 等原生设计更安全的协议,而不是为 Shadowsocks 叠加插件。插件方案更多用于需要兼容老旧客户端的场景。

优缺点

优点缺点
设计简洁,资源占用极低原始协议流量特征较明显,容易被识别
性能高效,延迟低不带混淆时抗检测能力弱
客户端支持最广泛混淆插件增加配置复杂度
历史悠久,文档和社区资源丰富安全性依赖加密方式的正确选择
无需域名和 TLS 证书流加密方式存在已知漏洞(但 AEAD 版本没有此问题)
支持 UDP 代理—

与其他协议的对比

对比维度ShadowsocksTrojanVLESS + Reality
是否需要域名否是否
是否需要 TLS 证书否是否
流量伪装有限(需插件)HTTPS任意目标网站
抗检测能力中(插件后较高)较高极高
协议复杂度低中中
客户端支持广度最广广较广(较新客户端)
性能高高高

适用场景

适合使用 Shadowsocks 的场景:

  • 客户端兼容性要求高,需要支持老旧设备或系统
  • 网络环境对检测力度较低,不需要强力伪装
  • 作为多协议方案中的一个备选,用于兼容不支持新协议的设备
  • 机场提供的订阅节点(很多机场仍以 SS 为主要协议)

不推荐单独依赖 Shadowsocks 的场景:

  • 网络审查力度强的环境
  • 需要长期稳定使用且不希望频繁切换节点的场景
  • 新建自用节点(此时应优先考虑 VLESS + Reality 等现代协议)

服务端部署参考

以下以 shadowsocks-rust 为例,展示基本的服务端配置结构。部署前请确认服务器已开放对应端口的防火墙规则。

安装(以 Debian/Ubuntu 为例):

# 从 GitHub Releases 下载对应系统的预编译二进制文件
wget https://github.com/shadowsocks/shadowsocks-rust/releases/latest/download/shadowsocks-v1.x.x.x86_64-unknown-linux-musl.tar.gz
tar -xzf shadowsocks-v1.x.x.x86_64-unknown-linux-musl.tar.gz
mv ssserver /usr/local/bin/

服务端配置文件(config.json):

{
    "server": "0.0.0.0",
    "server_port": 8388,
    "password": "your-strong-password",
    "method": "aes-256-gcm",
    "mode": "tcp_and_udp",
    "fast_open": true
}

启动服务:

ssserver -c /etc/shadowsocks/config.json

关于端口选择

避免使用 8388 等广为人知的 SS 默认端口。建议选择 10000 以上的随机端口,减少被主动扫描探测的风险。

客户端支持

Shadowsocks 是目前客户端支持最广泛的代理协议,几乎所有代理软件都支持它:

平台客户端
Windows / macOS / LinuxMihomo(Clash Meta)、sing-box、Xray、v2rayN
iOSShadowrocket、Stash、Quantumult X、Surge、Loon
macOSStash、Surge
AndroidNekoBox、Husi、Exclave
Linuxdae、sing-box、Mihomo
路由器OpenClash、ShellCrash

延伸阅读

  • Shadowsocks 2022 协议 — 了解对原版协议的现代化升级
  • VLESS 协议 — 了解目前抗检测能力更强的现代协议
  • 代理协议总览 — 回到协议总览页面
最近更新: 2026/4/8 16:01
Prev
代理协议总览
Next
Shadowsocks 2022