3x-ui Admin Guide
Xray JSON

dns: встроенный DNS

Xray JSON. Глава 35 из 38.

dns: встроенный DNS

Цель

Объяснить встроенный DNS Xray, его связь с routing и outbounds, а также риски DNS-утечек и routing loops.

Теория

Встроенный DNS Xray используется не как универсальная замена системному DNS во всех случаях, а как часть логики маршрутизации, разрешения target addresses и transparent proxy/TUN-сценариев.

Официальная документация выделяет три основные задачи:

  • разрешение доменов для routing phase;
  • разрешение target addresses для соединений;
  • обработка DNS-трафика в TUN/transparent proxy сценариях.

История

DNS стал отдельной частью Xray-конфигурации из-за необходимости split tunneling, domain-based routing и прозрачных proxy-сценариев. Если DNS остается вне модели маршрутизации, возможны утечки и неожиданные routing-решения.

Архитектура

DNS связан сразу с несколькими блоками:

code
client request
  -> inbound
  -> routing.domainStrategy
  -> dns servers / hosts
  -> routing IP/domain match
  -> outbound

Схематически:

Где участвует DNSЧто происходит
routing.domainStrategyрешает, когда домен резолвится для IP-match
dns.hostsлокальная подстановка доменов
dns.serversсписок DNS-серверов и правил выбора
DNS outboundможет использоваться для перехвата DNS-трафика
freedom/sockopt target strategyможет требовать разрешения домена перед подключением

Настройка

Перед настройкой DNS нужно ответить:

  • должен ли DNS идти через Xray;
  • нужен ли domain-based routing;
  • нужен ли IP-based routing;
  • какие DNS-серверы доверенные;
  • что делать с локальными доменами;
  • нужно ли перехватывать DNS-трафик клиента;
  • как проверять отсутствие DNS-утечек.

Разбор параметров

Полный DnsObject зависит от актуальной версии Xray, поэтому в этой главе фиксируется логика, а конкретные поля нужно сверять с официальной документацией.

ГруппаНазначениеРиск
hostsлокальные соответствия доменовневерная подстановка ломает routing
serversDNS-серверы и правила выборанеправильный сервер дает утечки
domainStrategy в routingкогда резолвить домен для routingвлияет на IP-based правила
DNS outboundобработка DNS-трафикаможет создать loop при неверном routing
disableFallback-логикауправление fallback serversможет неожиданно менять резолвер

Типовые ошибки

  • считать системный DNS и Xray DNS одним и тем же;
  • настроить domain rules, но не понимать, когда домен превращается в IP;
  • создать routing loop для DNS-запросов;
  • не учитывать IPv6;
  • проверять только доступность сайта, не проверяя DNS-путь;
  • отправлять DNS через недоверенный канал при sensitive-сценарии.

Безопасность

DNS раскрывает домены, время запросов и часть пользовательского поведения. Production-конфигурация должна явно описывать, какие DNS-запросы идут через Xray, какие идут напрямую и где возможны утечки. Для публикации логов DNS нужно учитывать dnsLog и маскирование.

Чек-лист

  • Понятно, используется ли встроенный DNS Xray.
  • routing.domainStrategy согласован с DNS.
  • DNS-серверы выбраны осознанно.
  • Проверены IPv4 и IPv6.
  • Проверены возможные DNS-утечки.
  • Нет routing loop для DNS.
  • DNS-логи не раскрывают лишние данные.

Источники для сверки

  • Project X: Built-in DNS Server — https://xtls.github.io/en/config/dns.html