ShadowsocksR — sing-box
sing-box реализует клиентскую сторону SSR. Входящий не поддерживается — для этого нужен специализированный SSR-сервер вроде ShadowsocksR-libev или одного из его форков.
Исходящий
type: "shadowsocksr":
| Поле | Тип | По умолчанию | Допустимые значения | Описание |
|---|---|---|---|---|
method | string | (required) | aes-256-cfb | aes-128-ctr | chacha20-ietf | rc4-md5 | <other SSR ciphers> | Шифр SSR. Принимаемый набор — исторический каталог шифров SSR: RC4, AES-CFB, AES-CTR, ChaCha20 и т. д. Современным AEAD-шифрам место на обычном исходящем Shadowsocks. |
password | string | (required) | <string> | Пароль сервера. |
obfs | string | (unset) | plain | http_simple | http_post | random_head | tls1.2_ticket_auth | Плагин обфускации. `plain` — без обфускации; `http_simple` и `http_post` отправляют поддельный HTTP-запрос; `tls1.2_ticket_auth` имитирует возобновление TLS-сессии. |
obfs_param | string | (unset) | <string> | Параметр конкретного плагина. Для HTTP-обфускации это заголовок Host. |
protocol | string | origin | origin | auth_aes128_md5 | auth_aes128_sha1 | auth_sha1_v4 | auth_chain_a | auth_chain_b | Плагин протокольного уровня. `origin` — без плагина; семейство `auth_*` добавляет попакетную аутентификацию. |
protocol_param | string | (unset) | <string> | Параметр протокольного уровня. Многие плагины используют его как подсказку о числе пользователей или ограничении скорости. |
network | NetworkList | (tcp+udp) | tcp | udp | | Ограничить только TCP или только UDP. |
Исходный код: option/shadowsocksr.go:3-13 · зафиксировано на v1.13.15 (3708fa1)
Встраивает DialerOptions и ServerOptions.
Примеры
Обычный SSR с HTTP-обфускацией:
json
{
"outbounds": [
{
"type": "shadowsocksr",
"tag": "ssr-out",
"server": "example.com",
"server_port": 443,
"method": "aes-256-cfb",
"password": "<password>",
"obfs": "http_simple",
"obfs_param": "www.bing.com",
"protocol": "auth_chain_a",
"protocol_param": "32"
}
]
}Обфускация TLS-ticket-auth:
json
{
"outbounds": [
{
"type": "shadowsocksr",
"server": "example.com",
"server_port": 443,
"method": "chacha20-ietf",
"password": "<password>",
"obfs": "tls1.2_ticket_auth",
"obfs_param": "www.bing.com",
"protocol": "auth_chain_b"
}
]
}Примечания
- Это только клиент. Для запуска SSR-сервера нужен выделенный SSR-демон — исходящему
shadowsocksrв sing-box не соответствует одноимённый тип входящего. - Принимаемые строки
method,obfsиprotocol— исторический каталог SSR. «Современные» шифры Shadowsocks (AEAD,2022-blake3-*) относятся к исходящему Shadowsocks. - Из протокольных плагинов сегодня активно используются только
auth_chain_*— более старые вариантыauth_aes128_*иauth_sha1_v4уязвимы к классу replay-атак, выявленному в 2018 году.
Сравнение с другими ядрами
- Xray-core не поддерживает SSR. См. SSR — Xray-core.
- mihomo использует
cipher(а неmethod) и kebab-case для полей параметров (obfs-param,protocol-param). См. SSR — mihomo.
Исходный код: option/shadowsocksr.go:3-13 · v1.13.15 (3708fa1)
