代理协议 · Clash文档

Shadowsocks (SS)

Clash 生态 Shadowsocks 出站配置参考,以当前 Mihomo 字段为准,涵盖加密方法、UDP over TCP 与插件传输。

  • cipher
  • UDP over TCP
  • plugin-opts
  • smux
  • TLS
代理协议

Shadowsocks 节点由哪些字段组成

客户端使用 cipherpassword 创建 Shadowsocks 加密方法,再连接 server:port 指定的服务端。地址、端口、加密方法和密码必须属于同一份服务端配置。

基础 Shadowsocks 可以分别承载 TCP 与 UDP。插件位于 Shadowsocks 连接外层,用来改变传输方式或流量外观,并不会替代基础加密字段。

name必填
节点名称,用于策略组和规则引用。
type必填
固定填写 ss
server必填
Shadowsocks 服务端域名或 IP。
port必填
服务端监听端口。
cipher必填
加密方法,必须与服务端逐字一致。
password必填
用于当前加密方法的 Shadowsocks 密码。

选择服务端实际使用的 Cipher

当前内核支持多组 Shadowsocks 加密方法。不要根据名称新旧自行替换 cipher,客户端与服务端不一致时无法完成加密握手。

Shadowsocks 加密方法分组
类别官方字段示例说明
AESaes-128-gcmaes-256-gcm、CTR、CFB、CCM、GCM-SIV包含 AEAD 与部分兼容用流加密方法
ChaChachacha20-ietf-poly1305xchacha20-ietf-poly1305同时支持官方列表中的 ChaCha20 与 ChaCha8 变体
2022 Blake32022-blake3-aes-128-gcm2022-blake3-chacha20-poly1305密码或密钥格式必须遵循对应服务端实现
LEAlea-128-gcmlea-192-gcmlea-256-gcm仅在服务端使用同一实现时选择
其他兼容项aegis-128laegis-256rc4-md5none只按既有服务端配置使用,不要为追求兼容随意降级

UDP 与 UDP over TCP

udp 控制节点是否允许处理 UDP。默认情况下 UDP 使用 Shadowsocks 原生 UDP;启用 UOT 后,UDP 数据会封装到 TCP 连接中,服务端必须支持相同机制和版本。

udp按需
允许节点处理 UDP,默认关闭。
udp-over-tcp按需
启用 UDP over TCP,默认 false
udp-over-tcp-version版本
UOT 版本仅支持 1 或 2,未填写时使用版本 1。
smux高级
通用 TCP 多路复用配置,不等同于 UOT,也不能替代服务端协议支持。

插件与 Plugin Options

一个节点只能按服务端选择对应插件,plugin-opts 的结构由插件决定。Shadowsocks 顶层没有通用的 tls 开关,TLS 应配置在支持它的插件选项内。

Shadowsocks 插件边界
plugin主要模式配置边界
obfshttptls常用 modehost,必须和 simple-obfs 服务端一致
v2ray-pluginwebsocket可在插件内开启 TLS,当前不支持 QUIC 模式
gost-pluginwebsocket可配置 Host、Path、请求头、Mux 与插件内 TLS
shadow-tlsShadow TLS配置 host、password、版本与可选 ALPN,版本支持 1、2、3
restlsRestls配置 host、password、version-hint 与可选流量脚本
kcptunKCP参数必须和 kcptun 服务端一致,当前实现会启用 UOT
jlsJLS配置 host、username、password 与可选 ALPN
plugin按需
插件名称,只能填写当前内核支持且服务端实际启用的类型。
plugin-opts按需
插件专属选项,不能在不同插件之间直接复用。
client-fingerprint按需
供 Shadow TLS、Restls 或 JLS 等相应插件模拟 TLS 客户端外观。

基础节点示例与排查

下面是不带插件的基础节点。若订阅给出了插件,应在保持六个基础字段不变的前提下追加 plugin 和对应的 plugin-opts

  • 初始化阶段报告 cipher 错误时,先核对加密方法拼写和当前内核支持列表。
  • TCP 可用而 UDP 不可用时,确认服务端 UDP、客户端 udp 与防火墙三处设置。
  • 插件连接失败时,逐项核对插件名称、mode、host、path、TLS 和密码,不要只检查 SS 密码。
YAML
proxies:
  - name: ss-node
    type: ss
    server: server.example.com
    port: 443
    cipher: chacha20-ietf-poly1305
    password: your-password
    udp: true