outbounds: исходящие подключения
Цель
Объяснить блок outbounds как точку выхода трафика из Xray и показать, как он связан с routing, DNS и производительностью.
Теория
outbounds — это массив исходящих подключений. Каждый outbound описывает, как Xray отправляет трафик дальше: напрямую, через proxy, через другой outbound, через DNS outbound или через специальный блокирующий outbound.
Официальная документация подчеркивает важное правило: первый элемент списка является primary outbound. Если routing match отсутствует или не сработал, трафик уходит через первый outbound.
История
Outbound-модель нужна Xray для гибкой маршрутизации: один inbound может принимать трафик, а routing распределяет его между несколькими outbounds — direct, proxy, block, DNS, цепочками или балансировщиками.
Архитектура
Типовой outbound:
{
"outbounds": [
{
"protocol": "freedom",
"settings": {},
"tag": "direct"
},
{
"protocol": "blackhole",
"settings": {},
"tag": "block"
}
]
}
Ключевая зависимость:
routing rule -> outboundTag -> outbound.tag
Настройка
Перед настройкой outbounds нужно определить:
- какой outbound будет первым и безопасен ли он как default;
- какие теги будут использоваться в routing;
- нужен ли direct-доступ;
- нужен ли block-outbound;
- есть ли chained proxy или outbound через другой сервер;
- как DNS влияет на исходящее соединение.
Разбор параметров
| Параметр | Назначение | Практический комментарий |
|---|---|---|
protocol | тип outbound | например freedom, blackhole, dns, vless, trojan |
settings | настройки protocol | зависят от выбранного outbound-протокола |
tag | идентификатор outbound | на него ссылается routing.rules[].outboundTag |
sendThrough | локальный IP для исходящего трафика | важен на серверах с несколькими адресами |
streamSettings | transport/security для outbound | нужен для proxy-outbound |
proxySettings | связь через другой outbound | используется для цепочек |
mux | multiplexing-настройки | требует отдельной проверки совместимости |
targetStrategy | стратегия работы с target | сверять с актуальной документацией |
Типовые ошибки
- поставить небезопасный outbound первым;
- создать routing-правило на несуществующий
tag; - считать, что порядок outbounds не важен;
- перепутать direct outbound и proxy outbound;
- не учитывать
sendThroughна multi-IP сервере; - менять outbound без проверки DNS и routing.
Безопасность
Первый outbound является критичным default-поведением. Если routing не совпал, трафик уйдет именно через него. Для production нужно явно понимать, что является default: direct, proxy или block. Ошибка здесь может привести к утечке трафика мимо ожидаемого туннеля.
Чек-лист
- Первый outbound выбран осознанно.
- Все
tagуникальны и понятны. - Все
outboundTagв routing существуют. - Direct/block/proxy outbounds разделены.
- DNS-поведение учтено.
- Multi-IP и
sendThroughпроверены, если применимо. - Chained proxy проходит отдельный technical review.
Источники для сверки
- Project X: Outbound Proxy — https://xtls.github.io/en/config/outbound.html