5.9 KiB
		
	
	
	
	
			
		
		
	
	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, которое можно использовать для активного зондирования
 
::: danger При использовании метода шифрования "none" трафик передается в открытом виде. В целях безопасности не используйте этот метод в общедоступных сетях. :::
InboundConfigurationObject
{
  "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
Уровень пользователя, для соединения будет использоваться локальная политика, соответствующая этому уровню пользователя.
Значение level соответствует значению level в разделе policy. Если не указано, используется значение по умолчанию - 0.
Адрес электронной почты пользователя, используется для разделения трафика разных пользователей (журналы, статистика).
ClientObject
{
  "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.