文档 配置 Shadowsocks

Shadowsocks

最经典的轻量代理协议,加密简单、性能好,配合插件还能做出各种流量伪装。机场和自建节点里最常见的协议之一。

配置示例

config.yaml YAML
proxies:
  - name: "ss1"
    type: ss
    server: server
    port: 443
    cipher: aes-128-gcm
    password: "password"
    udp: true
    udp-over-tcp: false
    plugin: obfs
    plugin-opts:
      mode: tls

基础字段

password必须

连接密码;SS2022 系列加密方式下这里是 EIH key。

cipher必须

加密方式,常用的有 aes-128-gcm/aes-256-gcm/chacha20-ietf-poly1305/xchacha20-ietf-poly1305,以及更新的 SS2022 系列 2022-blake3-aes-128-gcm/2022-blake3-aes-256-gcm/2022-blake3-chacha20-poly1305。老式的 aes-*-ctr/aes-*-cfb 系列也支持,但安全性和性能都不如 AEAD 系列,不建议新建节点使用。

udp-over-tcp / udp-over-tcp-version可选

把 UDP 流量伪装成 TCP 流量转发,某些只放行 TCP 的网络环境下可以用这个绕过限制。

plugin 插件

plugin 字段支持 obfs/v2ray-plugin/gost-plugin/shadow-tls/restls/kcptun,每种插件配套自己的 plugin-opts

obfs(simple-obfs)
YAML obfs
plugin: obfs
plugin-opts:
  mode: tls # 或 http
  host: bing.com

把流量伪装成 TLS 或 HTTP 握手的样子,是最简单的一种混淆方式,抗深度包检测能力有限。

shadow-tls
YAML shadow-tls
plugin: shadow-tls
client-fingerprint: chrome
plugin-opts:
  host: "cloud.tencent.com"
  password: "shadow_tls_password"
  version: 3 # 支持 1/2/3

把 SS 流量套一层真实的 TLS 握手(host 指向一个真实存在的网站),伪装效果比简单 obfs 更逼真,是目前抗封锁能力较强的方案之一。

restls
YAML restls
plugin: restls
client-fingerprint: chrome # chrome/ios/firefox/safari 之一
plugin-opts:
  host: "www.microsoft.com" # 应为 TLS 1.3 服务器
  password: [YOUR_RESTLS_PASSWORD]
  version-hint: "tls13"
  restls-script: "300?100<1,400~100,350~100,600~100,300~200,300~100"

比 shadow-tls 更进一步,通过 restls-script 精细控制握手后的流量行为,隐藏"TLS in TLS"这类特征。

v2ray-plugin
YAML v2ray-plugin
plugin: v2ray-plugin
plugin-opts:
  mode: websocket
  # tls: true
  # host: bing.com
  # path: /path

把 SS 流量包装成 WebSocket,可以套 CDN,兼容性好;目前暂不支持 QUIC 模式。

还有 kcptun 插件,用来把流量转成 KCP 协议提升弱网下的传输效率,字段较多(key/crypt/mode/mtu 等),使用场景较少,这里不展开。