Перейти к основному содержимому

Хосты

Хост — точка входа, которую видит клиент. Пользователь импортирует ссылку подписки, приложение получает список хостов и подключается по указанному в них адресу. Хост связывает инбаунд профиля конфигурации, ноды и параметры подключения.

Зачем нужны хосты​

Один и тот же инбаунд может отдаваться разными хостами: например, «Финляндия» и «Германия» ведут на разные наборы нод. Клиент видит хосты как отдельные подключения и переключается между ними.

  • хост без нод или с выключенными нодами пользователю бесполезен;
  • хост отдаётся только тем пользователям, у которых инбаунд этого хоста есть во внутреннем скваде;
  • выключенный (isDisabled) хост в подписку не попадает.

Привязка к инбаундам​

В форме хоста сначала выбирают инбаунд — один инбаунд на хост:

{
"inbound": {
"configProfileUuid": "00000000-0000-0000-0000-000000000000",
"configProfileInboundUuid": "11111111-1111-1111-1111-111111111111"
},
"nodes": ["22222222-2222-2222-2222-222222222222"]
}

Порт по умолчанию наследуется от инбаунда, но его можно переопределить. Если инбаунд удалён из профиля, хост перестаёт отдаваться — это видно в списке хостов.

Адрес, порт и SNI​

ПолеНазначение
addressIP или домен, куда подключается клиент. Домен предпочтительнее: при смене IP достаточно поправить DNS
portпорт подключения; по умолчанию совпадает с портом инбаунда
sniимя сервера для TLS/REALITY. Пусто — берётся значение из инбаунда
hostзначение заголовка Host или serverName там, где оно нужно
pathпуть для WebSocket, gRPC, XHTTP
securityLayerDEFAULT (как в инбаунде), TLS или NONE
alpnh3, h2, http/1.1 или их комбинации
fingerprintотпечаток TLS-клиента: chrome, firefox, safari, randomized и другие
overrideSniFromAddressподставлять SNI из address
keepSniBlankоставить SNI пустым
pinnedPeerCertSha256, verifyPeerCertByNameпроверка сертификата сервера

Поля xhttpExtraParams, muxParams, sockoptParams и finalMask — тонкая настройка транспорта; заполняйте их, только если понимаете, что делаете.

Использование в подписках​

ПолеВлияние на подписку
remarkназвание подключения у пользователя
isDisabledхост исключается из выдачи
isHiddenхост не показывается в браузерном представлении подписки, но остаётся в конфигурации клиента
shuffleHostслучайный порядок хостов
excludeFromSubscriptionTypesисключить хост из отдельных форматов, например только из MIHOMO
xrayJsonTemplateUuidсвой Xray JSON шаблон для этого хоста
serverDescriptionподпись сервера для «расширенных» клиентов
mihomoX25519, mihomoIpVersionпараметры для Mihomo
internalSquads.modeограничение хоста сквадами: EXCLUDE или ALLOW_ONLY
mapperперенос значений из инбаунда в клиентский конфиг
Совет

ALLOW_ONLY требует выбрать хотя бы один внутренний сквад — иначе форма не сохранится. Как это работает, читайте в разделе Сквады.

Внимание

Меняя address или sni, проверяйте результат в клиенте: часть приложений кэширует подписку и не обновляет её сразу.

Что дальше​

  • Сквады — кому какие хосты доступны.
  • Шаблоны — в каком виде хосты попадают к клиенту.
  • Ноды — серверы за хостами.
  • Клиенты — поддерживаемые приложения.