# Shadowsocks [Shadowsocks](https://zh.wikipedia.org/wiki/Shadowsocks) 协议,兼容大部分其它版本的实现。 目前兼容性如下: - 支持 TCP 和 UDP 数据包转发,其中 UDP 可选择性关闭; - 推荐的加密方式: - AES-256-GCM - AES-128-GCM - ChaCha20-Poly1305 或称 ChaCha20-IETF-Poly1305 - none 或 plain 不推荐的加密方式: - AES-256-CFB - AES-128-CFB - ChaCha20 - ChaCha20-IETF ::: danger "none" 不加密方式下,服务器端不会验证 "password" 中的密码。为确保安全性, 一般需要加上 TLS 并在传输层使用安全配置,例如 WebSocket 配置较长的 path ::: ## InboundConfigurationObject ```json { "settings": { "clients": [ { "password": "密码", "method": "aes-256-gcm", "level": 0, "email": "love@xray.com" } ], "network": "tcp,udp" } } ``` > `network`: "tcp" | "udp" | "tcp,udp" 可接收的网络协议类型。比如当指定为 `"tcp"` 时,仅会接收 TCP 流量。默认值为 `"tcp"`。 ## ClientObject ```json { "password": "密码", "method": "aes-256-gcm", "level": 0, "email": "love@xray.com" } ``` ::: tip (v1.2.3+) Xray 支持 Shadowsocks 单端口多用户,但是需要将该入站所有用户的加密方式设置为 AEAD。 ::: > `method`: string 必填。 - 推荐的加密方式: - AES-256-GCM - AES-128-GCM - ChaCha20-Poly1305 或称 ChaCha20-IETF-Poly1305 - none 或 plain > `password`: string 必填,任意字符串。 Shadowsocks 协议不限制密码长度,但短密码会更可能被破解,建议使用 16 字符或更长的密码。 > `level`: number 用户等级,连接会使用这个用户等级对应的 [本地策略](../policy.md#levelpolicyobject)。 `level` 的值, 对应 [policy](../policy.md#levelpolicyobject) 中 `level` 的值。 如不指定, 默认为 0。 > `email`: string 用户邮箱,用于区分不同用户的流量(日志、统计)。