Shadowsocks
Протокол 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, которые не могут гарантировать целостность содержимого
- Возрастающий коэффициент ложных срабатываний исходного фильтра повторов TCP с течением времени
- Отсутствие защиты от повторов UDP
- Поведение TCP, которое можно использовать для активного зондирования
Предупреждение
При использовании метода шифрования "none" трафик передается в открытом виде. В целях безопасности не используйте этот метод в общедоступных сетях.
OutboundConfigurationObject
{
"servers": [
{
"email": "love@xray.com",
"address": "127.0.0.1",
"port": 1234,
"method": "метод_шифрования",
"password": "пароль",
"uot": true,
"UoTVersion": 2,
"level": 0
}
]
}
servers
: [ServerObject]
Массив, представляющий собой набор настроек сервера Shadowsocks, каждый элемент которого является ServerObject.
ServerObject
{
"email": "love@xray.com",
"address": "127.0.0.1",
"port": 1234,
"method": "метод_шифрования",
"password": "пароль",
"uot": true,
"UoTVersion": 2,
"level": 0
}
Адрес электронной почты, необязательный параметр, используется для идентификации пользователя.
address
: address
Адрес сервера Shadowsocks, поддерживаются IPv4, IPv6 и доменные имена. Обязательный параметр.
port
: number
Порт сервера Shadowsocks. Обязательный параметр.
method
: string
Обязательный параметр.
password
: string
Обязательный параметр.
uot
: bool
Включить udp over tcp
.
UoTVersion
: number
Версия реализации UDP over TCP
.
Допустимые значения: 1
, 2
.
- 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
Уровень пользователя, для соединения будет использоваться локальная политика, соответствующая этому уровню пользователя.
Значение level
соответствует значению level
в разделе policy. Если не указано, используется значение по умолчанию - 0.