Shadowsocks: Refine inbound docs and sync RU

This commit is contained in:
Meow
2026-05-06 19:19:23 +08:00
parent 0177cec440
commit 5d67667f70
3 changed files with 91 additions and 53 deletions
+40 -26
View File
@@ -4,7 +4,7 @@
Текущая совместимость:
- Поддерживает пересылку пакетов TCP и UDP, при этом UDP можно выборочно отключить;
- Поддерживается пересылка TCP- и UDP-пакетов, при этом UDP можно при необходимости отключить.
- Рекомендуемые методы шифрования:
- 2022-blake3-aes-128-gcm
- 2022-blake3-aes-256-gcm
@@ -16,15 +16,15 @@
- xchacha20-poly1305 или xchacha20-ietf-poly1305
- none или plain
Новый формат протокола Shadowsocks 2022 повышает производительность и обеспечивает полную защиту от повторов, решая следующие проблемы безопасности старого протокола:
Новый формат протокола Shadowsocks 2022 повышает производительность и обеспечивает полноценную защиту от повторов, устраняя следующие проблемы безопасности старого протокола:
- [Серьезные уязвимости в шифровании Shadowsocks AEAD, которые не могут гарантировать целостность содержимого](https://github.com/shadowsocks/shadowsocks-org/issues/183)
- Возрастающий коэффициент ложных срабатываний исходного фильтра повторов TCP с течением времени
- Отсутствие защиты от повторов UDP
- Поведение TCP, которое можно использовать для активного зондирования
- [Серьезные уязвимости в конструкции AEAD-шифрования Shadowsocks, не позволяющие гарантировать надежность связи](https://github.com/shadowsocks/shadowsocks-org/issues/183)
- Рост частоты ложных срабатываний исходного TCP-фильтра повторов со временем
- Отсутствие защиты от повторов для UDP
- Поведение TCP, которое может использоваться для активного зондирования
::: danger
При использовании метода шифрования "none" трафик передается в открытом виде. В целях безопасности не используйте этот метод в общедоступных сетях.
При использовании метода шифрования "none" трафик передается в открытом виде. В целях безопасности не используйте этот метод в публичных сетях.
:::
## InboundConfigurationObject
@@ -49,11 +49,13 @@
> `network`: "tcp" | "udp" | "tcp,udp"
Поддерживаемые типы сетевых протоколов. Например, если указано `"tcp"`, будет приниматься только трафик TCP. Значение по умолчанию: `"tcp"`.
Тип сети, которую **прослушивает** серверный порт. Значение по умолчанию: `"tcp"`.
Обратите внимание, что этот параметр относится только к прослушиванию; он в основном влияет на встроенную передачу UDP в Shadowsocks и управляет ею. Значение `"tcp"` не означает, что inbound отклонит UDP-прокси-запросы. Такие запросы все еще могут быть упакованы в TCP средствами Shadowsocks outbound, например через UoT или mux.cool, и отправлены на сервер; этот параметр их не контролирует.
> `method`: string
Метод шифрования, доступные варианты см. выше.
Метод шифрования. Список вариантов приведен выше.
> `password`: string
@@ -61,30 +63,38 @@
- Shadowsocks 2022
Используется предварительный общий ключ, аналогичный WireGuard, в качестве пароля.
В качестве пароля используется предварительно согласованный ключ, аналогичный WireGuard.
Используйте команду `openssl rand -base64 <длина>` для генерации ключа, совместимого с shadowsocks-rust, длина зависит от используемого метода шифрования.
Используйте `openssl rand -base64 <длина>` для генерации ключа, совместимого с shadowsocks-rust; длина зависит от выбранного метода шифрования.
| Метод шифрования | Длина ключа |
| ----------------------------- | ----------: |
| 2022-blake3-aes-128-gcm | 16 |
| 2022-blake3-aes-256-gcm | 32 |
| 2022-blake3-chacha20-poly1305 | 32 |
| Метод шифрования | Длина ключа |
| ----------------------------- | ----------: |
| 2022-blake3-aes-128-gcm | 16 |
| 2022-blake3-aes-256-gcm | 32 |
| 2022-blake3-chacha20-poly1305 | 32 |
В реализации Go всегда работают 32-битные ключи.
В реализации на Go 32-байтовые ключи работают всегда.
- Другие методы шифрования
Любая строка. Длина пароля не ограничена, но короткие пароли более уязвимы для взлома, рекомендуется использовать пароли длиной 16 символов или более.
Подходит любая строка. Длина пароля не ограничена, но короткие пароли легче подобрать, поэтому рекомендуется использовать пароль длиной не менее 16 символов.
> `level`: number
Уровень пользователя, для соединения будет использоваться [локальная политика](../policy.md#levelpolicyobject), соответствующая этому уровню пользователя.
Значение `level` соответствует значению `level` в разделе [policy](../policy.md#levelpolicyobject). Если не указано, используется значение по умолчанию - 0.
Уровень пользователя. Для соединения будет использоваться [локальная политика](../policy.md#levelpolicyobject), соответствующая этому уровню пользователя.
Значение `level` соответствует значению `level` в разделе [policy](../policy.md#levelpolicyobject). Если не указано, по умолчанию используется 0.
> `email`: string
Адрес электронной почты пользователя, используется для разделения трафика разных пользователей (журналы, статистика).
Адрес электронной почты пользователя, используемый для различения трафика разных пользователей (журналы, статистика).
> `users`: [ [UserObject](#userobject) ]
Массив, представляющий группу пользователей, распознаваемых сервером.
Каждый элемент массива является [UserObject](#userobject).
Наличие этой опции означает, что включен многопользовательский режим.
## UserObject
@@ -97,12 +107,16 @@
}
```
Наличие этой опции означает включение многопользовательского режима.
> `method`: string
Если `method` в InboundConfigurationObject не является опцией SS2022, можно указать `"method"` для каждого пользователя. (`"method"` также поддерживает только опции, не относящиеся к SS2022) и `"password"` (при этом `"password"`, установленный в InboundConfigurationObject, будет игнорироваться).
- Если `method` в `InboundConfigurationObject` не относится к SS2022, здесь можно указать `"method"` для каждого пользователя (в `"method"` также поддерживаются только не-SS2022 варианты) вместе с `"password"`; при этом `"password"`, заданный в `InboundConfigurationObject`, будет проигнорирован.
Если `method` в InboundConfigurationObject является опцией SS2022, то из соображений безопасности больше не поддерживается установка `"method"` для отдельных пользователей, используется единый `"method"`, указанный в InboundConfigurationObject.
- Если `method` в `InboundConfigurationObject` относится к SS2022, из соображений безопасности больше не поддерживается установка `"method"` для отдельных пользователей. Используется единый `"method"`, указанный в `InboundConfigurationObject`.
Обратите внимание, что SS2022, в отличие от старого SS, не игнорирует `"password"` верхнего уровня, правильный способ записи пароля клиента: `ServerPassword:UserPassword`. Например: `"password": "114514:1919810"`
> `password`: string
Остальные опции имеют то же значение, что и в InboundConfigurationObject.
Обратите внимание: SS2022, в отличие от старого SS, не игнорирует верхнеуровневый `"password"`. Правильный формат пароля на клиенте: `ServerPassword:UserPassword`. Например: `"password": "114514:1919810"`
> Остальные опции
Имеют то же значение, что и в `InboundConfigurationObject`.