mirror of
https://github.com/XTLS/Xray-docs-next.git
synced 2025-01-20 17:51:40 +03:00
3b23ce3ea2
* add Russian lang support --------- Co-authored-by: 风扇滑翔翼 <Fangliding.fshxy@outlook.com>
111 lines
5.9 KiB
Markdown
111 lines
5.9 KiB
Markdown
# Shadowsocks
|
||
|
||
Протокол [Shadowsocks](https://ru.wikipedia.org/wiki/Shadowsocks), совместимый с большинством других реализаций.
|
||
|
||
Текущая совместимость:
|
||
|
||
- Поддерживает пересылку пакетов TCP и UDP, при этом UDP можно выборочно отключить;
|
||
- Рекомендуемые методы шифрования:
|
||
- 2022-blake3-aes-128-gcm
|
||
- 2022-blake3-aes-256-gcm
|
||
- 2022-blake3-chacha20-poly1305
|
||
- Другие методы шифрования:
|
||
- aes-256-gcm
|
||
- aes-128-gcm
|
||
- chacha20-poly1305 или chacha20-ietf-poly1305
|
||
- xchacha20-poly1305 или xchacha20-ietf-poly1305
|
||
- none или plain
|
||
|
||
Новый формат протокола Shadowsocks 2022 повышает производительность и обеспечивает полную защиту от повторов, решая следующие проблемы безопасности старого протокола:
|
||
|
||
- [Серьезные уязвимости в шифровании Shadowsocks AEAD, которые не могут гарантировать целостность содержимого](https://github.com/shadowsocks/shadowsocks-org/issues/183)
|
||
- Возрастающий коэффициент ложных срабатываний исходного фильтра повторов TCP с течением времени
|
||
- Отсутствие защиты от повторов UDP
|
||
- Поведение TCP, которое можно использовать для активного зондирования
|
||
|
||
::: danger
|
||
При использовании метода шифрования "none" трафик передается в открытом виде. В целях безопасности не используйте этот метод в общедоступных сетях.
|
||
:::
|
||
|
||
## InboundConfigurationObject
|
||
|
||
```json
|
||
{
|
||
"settings": {
|
||
"network": "tcp,udp",
|
||
"method": "aes-256-gcm",
|
||
"password": "114514",
|
||
"level": 0,
|
||
"email": "love@xray.com",
|
||
"clients": [
|
||
{
|
||
"password": "1919810",
|
||
"method": "aes-128-gcm"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
> `network`: "tcp" | "udp" | "tcp,udp"
|
||
|
||
Поддерживаемые типы сетевых протоколов. Например, если указано `"tcp"`, будет приниматься только трафик TCP. Значение по умолчанию: `"tcp"`.
|
||
|
||
> `method`: string
|
||
|
||
Метод шифрования, доступные варианты см. выше.
|
||
|
||
> `password`: string
|
||
|
||
Обязательный параметр.
|
||
|
||
- Shadowsocks 2022
|
||
|
||
Используется предварительный общий ключ, аналогичный WireGuard, в качестве пароля.
|
||
|
||
Используйте команду `openssl rand -base64 <длина>` для генерации ключа, совместимого с shadowsocks-rust, длина зависит от используемого метода шифрования.
|
||
|
||
| Метод шифрования | Длина ключа |
|
||
| ------------------------------------ | ----------: |
|
||
| 2022-blake3-aes-128-gcm | 16 |
|
||
| 2022-blake3-aes-256-gcm | 32 |
|
||
| 2022-blake3-chacha20-poly1305 | 32 |
|
||
|
||
В реализации Go всегда работают 32-битные ключи.
|
||
|
||
- Другие методы шифрования
|
||
|
||
Любая строка. Длина пароля не ограничена, но короткие пароли более уязвимы для взлома, рекомендуется использовать пароли длиной 16 символов или более.
|
||
|
||
> `level`: number
|
||
|
||
Уровень пользователя, для соединения будет использоваться [локальная политика](../policy.md#levelpolicyobject), соответствующая этому уровню пользователя.
|
||
Значение `level` соответствует значению `level` в разделе [policy](../policy.md#levelpolicyobject). Если не указано, используется значение по умолчанию - 0.
|
||
|
||
> `email`: string
|
||
|
||
Адрес электронной почты пользователя, используется для разделения трафика разных пользователей (журналы, статистика).
|
||
|
||
## ClientObject
|
||
|
||
```json
|
||
{
|
||
"password": "1919810",
|
||
"method": "aes-256-gcm",
|
||
"level": 0,
|
||
"email": "love@xray.com"
|
||
}
|
||
```
|
||
|
||
Наличие этой опции означает включение многопользовательского режима.
|
||
|
||
Если `method` в InboundConfigurationObject не является опцией SS2022, можно указать `"method"` для каждого пользователя. (`"method"` также поддерживает только опции, не относящиеся к SS2022) и `"password"` (при этом `"password"`, установленный в InboundConfigurationObject, будет игнорироваться).
|
||
|
||
Если `method` в InboundConfigurationObject является опцией SS2022, то из соображений безопасности больше не поддерживается установка `"method"` для отдельных пользователей, используется единый `"method"`, указанный в InboundConfigurationObject.
|
||
|
||
Обратите внимание, что SS2022, в отличие от старого SS, не игнорирует `"password"` верхнего уровня, правильный способ записи пароля клиента: `ServerPassword:UserPassword`. Например: `"password": "114514:1919810"`
|
||
|
||
Остальные опции имеют то же значение, что и в InboundConfigurationObject.
|
||
|
||
|