Skip to content

ShadowsocksR — sing-box ​

В sing-box нет реализации ShadowsocksR. Тип shadowsocksr распознаётся, чтобы существующие конфигурации разбирались, но любой исходящий (или входящий) shadowsocksr при запуске завершается ошибкой. Схема параметров ниже приведена лишь для справки при миграции таких конфигураций.

Исходящий ​

type: "shadowsocksr":

ПолеТипПо умолчаниюДопустимые значенияОписание
methodstring(required)aes-256-cfb | aes-128-ctr | chacha20-ietf | rc4-md5 | <other SSR ciphers>Шифр SSR. Принимаемый набор — исторический каталог шифров SSR: RC4, AES-CFB, AES-CTR, ChaCha20 и т. д. Современным AEAD-шифрам место на обычном исходящем Shadowsocks.
passwordstring(required)<string>Пароль сервера.
obfsstring(unset)plain | http_simple | http_post | random_head | tls1.2_ticket_authПлагин обфускации. plain — без обфускации; http_simple и http_post отправляют поддельный HTTP-запрос; tls1.2_ticket_auth имитирует возобновление TLS-сессии.
obfs_paramstring(unset)<string>Параметр конкретного плагина. Для HTTP-обфускации это заголовок Host.
protocolstringoriginorigin | auth_aes128_md5 | auth_aes128_sha1 | auth_sha1_v4 | auth_chain_a | auth_chain_bПлагин протокольного уровня. origin — без плагина; семейство auth_* добавляет попакетную аутентификацию.
protocol_paramstring(unset)<string>Параметр протокольного уровня. Многие плагины используют его как подсказку о числе пользователей или ограничении скорости.
networkNetworkList(tcp+udp)tcp | udp | Ограничить только TCP или только UDP.

Исходный код: option/shadowsocksr.go:3-13 · зафиксировано на v1.14.2 (af6e64c)

Встраивает 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"
    }
  ]
}

Примечания ​

  • Исходящий shadowsocksr — заглушка: его параметры разбираются, но создание всегда завершается ошибкой (include/registry.go:170-179). Используйте вместо него прокси ssr в mihomo или переведите сервер на Shadowsocks либо другой современный протокол.
  • Принимаемые строки 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.14.2 (af6e64c)

Core Tutorial от Argsment