Skip to content

Входящие

inbounds — массив слушающих сервисов. Каждый элемент — один InboundDetourConfig: имя протокола, адрес прослушивания, объект settings конкретного протокола и необязательные блоки транспорта (streamSettings) и определения трафика (sniffing). Содержимое settings хранится как сырой JSON и декодируется тем обработчиком, который выбирает protocol.

Параметры

ПолеТипПо умолчаниюДопустимые значенияОписание
protocolstringdokodemo-door | tunnel | http | socks | mixed | shadowsocks | vless | vmess | trojan | wireguard | hysteria | tunКакой обработчик входящих запускать. Перед поиском в реестре имя приводится к нижнему регистру, так что сопоставление нечувствительно к регистру. `tunnel` — псевдоним `dokodemo-door`; `mixed` использует общий обработчик SOCKS (HTTP + SOCKS на одном порту).
port*PortList<int> | "<from>-<to>" | "port,port,..."Порт(ы) для прослушивания: одно целое число, строка-диапазон или разделённый запятыми список того и другого. Обязателен для протоколов на сокетах; `tun` игнорирует его и вместо этого читает из сетевого интерфейса.
listen*Address0.0.0.0Адрес для привязки. По умолчанию — все интерфейсы; укажите 127.0.0.1, чтобы входящий оставался только локальным.
settings*json.RawMessageОбъект настроек конкретного протокола; его декодирует обработчик, выбранный полем protocol. Формат для каждого протокола описан на соответствующей странице.
tagstringУникальное имя этого входящего. На него ссылаются правила маршрутизации (inboundTag), им же помечаются счётчики статистики.
streamSettings*StreamConfigТранспорт и безопасность слушателя (raw / ws / grpc / xhttp…, tls / reality). См. страницы «Транспорт» и «TLS».
sniffing*SniffingConfigОпределение типа трафика на принятых подключениях. Поля — ниже.

Исходный код: infra/conf/xray.go:126-134 · зафиксировано на v26.7.28 (5ca6f4b)

Сниффинг (sniffing)

ПолеТипПо умолчаниюДопустимые значенияОписание
enabledboolfalsetrue | falseВключить сниффинг для этого входящего.
destOverrideStringList"http" | "tls" | "quic" | "fakedns" | "fakedns+others"Список протоколов, для которых определённое сниффингом назначение заменяет исходный адрес цели. `https` и `ssl` принимаются как псевдонимы `tls`.
domainsExcludedStringListДомены, сохраняющие исходное назначение, даже если сниффинг дал совпадение.
ipsExcludedStringListIP/CIDR назначения, исключаемые из подмены назначения.
metadataOnlyboolfalsetrue | falseИспользовать для определения только метаданные соединения; байты полезной нагрузки не анализируются.
routeOnlyboolfalsetrue | falseИспользовать определённый сниффингом домен только для решений маршрутизации, без перезаписи назначения.

Исходный код: infra/conf/xray.go:55-62 · зафиксировано на v26.7.28 (5ca6f4b)

Минимальный пример

json
{
  "inbounds": [
    {
      "tag": "socks-in",
      "protocol": "socks",
      "listen": "127.0.0.1",
      "port": 1080,
      "settings": { "udp": true },
      "sniffing": {
        "enabled": true,
        "destOverride": ["http", "tls"]
      }
    }
  ]
}

Примечания

  • Неизвестный protocol приводит к отказу при запуске с ошибкой unknown config id; таблица поиска — фиксированный реестр, а не система плагинов.
  • tag должен быть уникален среди входящих — правила маршрутизации и подсистема статистики адресуют входящие по тегу.
  • tun — единственный входящий, которому не нужен port: он захватывает пакеты с сетевого интерфейса. См. TUN.
  • Сниффинг перезаписывает назначение до запуска маршрутизации — именно это позволяет доменным правилам совпадать с подключениями, пришедшими по IP. routeOnly ограничивает эффект только маршрутизацией.

Сравнение с другими ядрами

  • sing-box моделирует ту же концепцию как плоский объект на каждую запись — type + tag + поля конкретного типа на одном уровне вместо вложенного блока settings. См. Входящие sing-box.
  • mihomo не имеет массива inbounds на верхнем уровне: типовые слушатели — это отдельные корневые ключи (port, socks-port, mixed-port, …) плюс список listeners для дополнительных записей. См. HTTP и SOCKS и Перенаправление и TProxy.

Исходный код: infra/conf/xray.go:126-134 · v26.7.28 (5ca6f4b)

Core Tutorial от Argsment