# Shadowsocks

  • 名称:shadowsocks
  • 类型:入站 / 出站

Shadowsocks (opens new window) 协议,包含入站和出站两部分,兼容大部分其它版本的实现。

与官方版本的兼容性:

  • 支持 TCP 和 UDP 数据包转发,其中 UDP 可选择性关闭;
  • 加密方式:
    • AES-256-GCM
    • AES-128-GCM
    • ChaCha20-Poly1305 或称 ChaCha20-IETF-Poly1305
    • (V2Ray 4.27.0+) none 或称 plain

WARNING

"none" 不加密方式下,服务器端不会验证 "password" 中的密码。一般需要加上 TLS 并在传输层使用安全配置,例如 WebSocket 配置较长的 path

Shadowsocks 的配置分为两部分,InboundConfigurationObjectOutboundConfigurationObject,分别对应入站和出站协议配置中的 settings 项。

# InboundConfigurationObject

{
    "email": "[email protected]",
    "method": "aes-256-gcm",
    "password": "密码",
    "level": 0,
    "network": "tcp"
}

email: string

邮件地址,可选,用于标识用户

method: string

必填。可选的值见 加密方式列表

password: string

必填,任意字符串。Shadowsocks 协议不限制密码长度,但短密码会更可能被破解,建议使用 16 字符或更长的密码。

level: number

用户等级,默认值为 0。详见 本地策略

network: "tcp" | "udp" | "tcp,udp"

可接收的网络连接类型,默认值为 "tcp"

# OutboundConfigurationObject

{
    "servers": [
        {
            "email": "[email protected]",
            "address": "127.0.0.1",
            "port": 1234,
            "method": "加密方式",
            "password": "密码",
            "level": 0
        }
    ]
}

servers: [ServerObject]

一个数组,其中每一项是一个 ServerObject

# ServerObject

{
    "email": "[email protected]",
    "address": "127.0.0.1",
    "port": 1234,
    "method": "加密方式",
    "password": "密码",
    "level": 0
}

email: string

邮件地址,可选,用于标识用户

address: address

Shadowsocks 服务器地址,支持 IPv4、IPv6 和域名。必填。

port: number

Shadowsocks 服务器端口。必填。

method: string

必填。可选的值见加密方式列表

password: string

必填。任意字符串。Shadowsocks 协议不限制密码长度,但短密码会更可能被破解,建议使用 16 字符或更长的密码。

level: number

用户等级

# 加密方式列表

  • "aes-256-gcm"
  • "aes-128-gcm"
  • "chacha20-poly1305""chacha20-ietf-poly1305"
  • "none""plain"