Shadowsocks 节点由哪些字段组成
客户端使用 cipher 与 password 创建 Shadowsocks 加密方法,再连接 server:port 指定的服务端。地址、端口、加密方法和密码必须属于同一份服务端配置。
基础 Shadowsocks 可以分别承载 TCP 与 UDP。插件位于 Shadowsocks 连接外层,用来改变传输方式或流量外观,并不会替代基础加密字段。
name必填- 节点名称,用于策略组和规则引用。
type必填- 固定填写
ss。 server必填- Shadowsocks 服务端域名或 IP。
port必填- 服务端监听端口。
cipher必填- 加密方法,必须与服务端逐字一致。
password必填- 用于当前加密方法的 Shadowsocks 密码。
选择服务端实际使用的 Cipher
当前内核支持多组 Shadowsocks 加密方法。不要根据名称新旧自行替换 cipher,客户端与服务端不一致时无法完成加密握手。
| 类别 | 官方字段示例 | 说明 |
|---|---|---|
| AES | aes-128-gcm、aes-256-gcm、CTR、CFB、CCM、GCM-SIV | 包含 AEAD 与部分兼容用流加密方法 |
| ChaCha | chacha20-ietf-poly1305、xchacha20-ietf-poly1305 | 同时支持官方列表中的 ChaCha20 与 ChaCha8 变体 |
| 2022 Blake3 | 2022-blake3-aes-128-gcm、2022-blake3-chacha20-poly1305 | 密码或密钥格式必须遵循对应服务端实现 |
| LEA | lea-128-gcm、lea-192-gcm、lea-256-gcm | 仅在服务端使用同一实现时选择 |
| 其他兼容项 | aegis-128l、aegis-256、rc4-md5、none 等 | 只按既有服务端配置使用,不要为追求兼容随意降级 |
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 应配置在支持它的插件选项内。
| plugin | 主要模式 | 配置边界 |
|---|---|---|
obfs | http 或 tls | 常用 mode 与 host,必须和 simple-obfs 服务端一致 |
v2ray-plugin | websocket | 可在插件内开启 TLS,当前不支持 QUIC 模式 |
gost-plugin | websocket | 可配置 Host、Path、请求头、Mux 与插件内 TLS |
shadow-tls | Shadow TLS | 配置 host、password、版本与可选 ALPN,版本支持 1、2、3 |
restls | Restls | 配置 host、password、version-hint 与可选流量脚本 |
kcptun | KCP | 参数必须和 kcptun 服务端一致,当前实现会启用 UOT |
jls | JLS | 配置 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 密码。
proxies:
- name: ss-node
type: ss
server: server.example.com
port: 443
cipher: chacha20-ietf-poly1305
password: your-password
udp: true