You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
# 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
|
|
|
|
:::
|
|
|
|
|
|
|
|
## OutboundConfigurationObject
|
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"servers": [
|
|
|
|
{
|
|
|
|
"email": "love@xray.com",
|
|
|
|
"address": "127.0.0.1",
|
|
|
|
"port": 1234,
|
|
|
|
"method": "加密方式",
|
|
|
|
"password": "密码",
|
|
|
|
"level": 0
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
> `servers`: \[[ServerObject](#serverobject)\]
|
|
|
|
|
|
|
|
一个数组,代表一组 Shadowsocks 服务端设置, 其中每一项是一个 [ServerObject](#serverobject)。
|
|
|
|
|
|
|
|
### ServerObject
|
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"email": "love@xray.com",
|
|
|
|
"address": "127.0.0.1",
|
|
|
|
"port": 1234,
|
|
|
|
"method": "加密方式",
|
|
|
|
"password": "密码",
|
|
|
|
"level": 0
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
> `email`: string
|
|
|
|
|
|
|
|
邮件地址,可选,用于标识用户
|
|
|
|
|
|
|
|
> `address`: address
|
|
|
|
|
|
|
|
Shadowsocks 服务端地址,支持 IPv4、IPv6 和域名。必填。
|
|
|
|
|
|
|
|
> `port`: number
|
|
|
|
|
|
|
|
Shadowsocks 服务端端口。必填。
|
|
|
|
|
|
|
|
> `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#policyobject) 中 `level` 的值。 如不指定, 默认为 0。
|