DNS, распознавание трафика и выбор прокси
Умная маршрутизация и каждый обычный маршрут независимо сохраняют DNS, распознавание трафика и выбор прокси. Правки применяются после сохранения; для активного маршрута App нужно подтверждённое переподключение. Advanced/Raw и конфигурации провайдера используют свои поля.
DNS прокси и прямого выхода
Для каждого пути задаются основной и упорядоченные резервные адреса. Основные адреса по умолчанию — 8.8.8.8, кеш включён, резервирование только через тот же выход выключено. В записи редактируется лишь адрес, включая поддерживаемые TCP/HTTPS формы.
DNS-сопоставление берётся только из чисто доменных proxy/direct правил. Исключения прокси приоритетнее широких прямых категорий. Домены прокси не переходят к прямому DNS. Прямой DNS после ошибки по умолчанию может использовать прокси; режим одного выхода ограничивает резервные запросы тем же путём. Выключение прямого DNS сохраняет адреса, но не применяет доменное сопоставление. DNS туннеля — отдельная платформенная настройка.
В обычном JSON используются теги app-dns-proxy/app-dns-direct в порядке основного и резервных серверов; для FakeDNS — app-dns-fake. Корневые disableCache и disableFallbackIfMatch задают кеш и резервирование в том же выходе. Домены, finalQuery и IPv6-политику формирует App. У обычного resolver доступны только address/tag: нет отдельных тайм-аутов, переопределения кеша, фильтров ответов, устаревшего кеша или параллельных запросов. Нативные поля и подсказки JSON остаются в Advanced/Raw.
Распознавание трафика
HTTP/TLS/QUIC включены по умолчанию; routeOnly и metadataOnly выключены. metadataOnly использует метаданные без чтения содержимого HTTP/TLS/QUIC. FakeDNS требует включённого sniffing. Обычная форма не задаёт исключения доменов/IP.
Обычный обмен сохраняет единственный inbounds-заполнитель с tag tunIn и sniffing.enabled, routeOnly, metadataOnly. App формирует destOverride и реальный слушатель. Advanced/Raw сохраняют полные объекты и нативные исключения.
Циклический выбор и минимальная задержка
По умолчанию — round robin. Least latency проверяет только выбранные для подключения полные цепочки, если их хотя бы две. Один фиксированный узел сохраняет настройку без лишних проб. Конечный выход входит в каждую цепочку. Эти результаты отделены от ручных тестов списка серверов.
По умолчанию: https://www.google.com/generate_204, 60 секунд, параллельные пробы. Форма предлагает 30/60/300 секунд; импорт принимает HTTP(S) URL и поддерживаемую duration не меньше 10 секунд.
Новые соединения используют результаты, существующие TCP/UDP-сессии не переносятся. При неудаче leastPing выбирает первую полную цепочку, не прямой выход. После правил пользователя App добавляет прокси-правило для своего TUN и включённого LAN-входа. Round robin сохраняет прежний первый outbound и прямой fallback. Доступность тестового URL не доказывает разблокировку Netflix/AI или пропускную способность.
Страница подключения показывает неизвестно/доступно/ошибка, задержку и время проверки из metrics. Отсутствие metrics не означает отключение VPN. Обычный и расширенный обмен разрешают у routing.balancers только tag proxy и strategy.type=roundRobin|leastPing, а у Observatory — probeURL, probeInterval, enableConcurrency. selector, fallbackTag, subjectSelector формирует App. Дополнительные входы Advanced требуют явного balancerTag: proxy.