Проверка DNS‑утечек — это единая цепочка: ClashX, стек macOS, DoH браузера и финальная верификация. Любое расхождение даёт плавающие результаты.
Что считать утечкой DNS
Если DNS‑запросы обходят ожидаемую прокси‑цепочку — это утечка. Часто встречается вариант: внешний IP — через прокси, а DNS резолвит локальный провайдер.
Скорость — не показатель. Важен именно «кто» резолвит и соответствует ли он выбранной стратегии.
| Результат | Что означает |
|---|---|
| DNS локального провайдера | Высокая вероятность утечки |
| DNS из региона узла | Обычно корректно |
| Смешение стран в одно время | Параллельные интерфейсы или DoH браузера |
| Конфликт терминал ↔ браузер | Разные пути резолвинга |
Сигналы утечки
- Смена узла не меняет «личность» DNS
- Внешний IP зарубежный, DNS — локальный
- При перезагрузке страницы меняются страны DNS
- Терминал норм, браузер «течёт», или наоборот
Ключевые настройки ClashX
Чаще всего проблема — в dns.enable, отсутствии fallback или фильтров.
Рекомендовано (fake‑ip)
dns:
enable: true
listen: 0.0.0.0:53
ipv6: false
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- https://223.5.5.5/dns-query
- https://119.29.29.29/dns-query
fallback:
- https://1.1.1.1/dns-query
- https://8.8.8.8/dns-query
fallback-filter:
geoip: true
geoip-code: CN
ipcidr:
- 240.0.0.0/4
domain:
- +.google.com
- +.github.com
Совместимость (redir-host)
dns:
enable: true
listen: 127.0.0.1:53
enhanced-mode: redir-host
nameserver:
- 223.5.5.5
- 114.114.114.114
fallback:
- tls://1.1.1.1:853
- tls://8.8.8.8:853
fallback-filter:
geoip: true
geoip-code: CN
1) dns.enable: false; 2) нет fallback; 3) недоступные fallback; 4) отсутствует fallback-filter, и система падает на локальный DNS.
fake-ip чаще лучше для защиты и скорости; redir-host — для совместимости в локальных сценариях.
- После правок перезагрузите конфиг
- Сравните минимум два узла
- Меняйте по одному параметру и фиксируйте результат
Проверка на уровне macOS
Даже при верном конфиге система может выдать неожиданный путь при нескольких интерфейсах.
Команды
# Детали резолвера
scutil --dns
# DNS для Wi‑Fi
networksetup -getdnsservers Wi-Fi
# DNS для Ethernet
networksetup -getdnsservers Ethernet
# Порядок сетевых сервисов
networksetup -listnetworkserviceorder
# Сброс кеша
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
Пошагово
- Оставьте один активный интерфейс
- Зафиксируйте узел в ClashX
- Сохраните вывод
scutil --dns - Сравните
networksetup -getdnsservers Wi-Fi - Очистите кеш, затем проверьте сайты
- Запишите время, узел и итоги
Wi‑Fi + Ethernet + корпоративные агенты и VPN могут переназначить приоритет. Упростите окружение на время диагностики.
Влияние DoH в браузерах
DoH может обойти системный DNS. Для базовой валидации отключите его, чтобы получить стабильный эталон.
Защищает от подмены, но создаёт независимый путь резолвинга. Сначала выровняйте политику, потом включайте обратно.
Chrome
- Настройки → Приватность и безопасность → Безопасность
- Отключите «Использовать защищённый DNS»
- Проверьте, затем при необходимости включите
Firefox
- Настройки → Приватность и защита
- В разделе DNS over HTTPS выберите «Выключено»
- Перезапустите и проверьте
Edge
- Настройки → Конфиденциальность, поиск и службы
- Отключите «Использовать защищённый DNS»
- Повторите проверку
В терминале — один резолвер, в браузере — публичный DoH‑провайдер. Сначала проверьте настройки браузера, не меняя ClashX.
Скрипты и шаблоны записи
Чтобы результат был воспроизводимым, фиксируйте шаги и окружение.
Скрипт проверки
date
echo "Node: ______"
echo "Mode: Rule/Global"
scutil --dns > /tmp/clashx-dns-check.txt
networksetup -getdnsservers Wi-Fi >> /tmp/clashx-dns-check.txt
echo "Visit: https://dnsleaktest.com"
echo "Visit: https://ipleak.net"
echo "Visit: https://browserleaks.com/dns"
echo "Expected Region: ______"
echo "Observed Region: ______"
echo "Leak? Yes/No"
Шаблон записи
【Журнал проверки DNS‑утечки】
Дата:
Версия системы:
ClashX:
Режим: fake-ip / redir-host
Узел:
Система:
- scutil --dns:
- networksetup:
Браузер:
- Chrome DoH: вкл/выкл
- Firefox DoH: вкл/выкл
- Edge DoH: вкл/выкл
Площадки:
- dnsleaktest.com:
- ipleak.net:
- browserleaks.com:
Вывод:
- Есть ли утечка:
- Основание:
- Изменения:
- Точка отката:
Стандартная процедура
- Зафиксируйте узел, отключите DoH, запишите системный DNS
- Проверьте 2 площадки, сохраните скриншоты
- Смените узел, проверьте, меняется ли «личность» DNS
- Если конфликт, возвращайте переменные (DoH, интерфейсы, корпоративные клиенты)
- Зафиксируйте «базовую линию без утечек»
Типичные ложные выводы
Латентность/потери ухудшают опыт, но не доказывают утечку. Смотрите на личность резолвера.
CDN может отдавать нестандартный регион. Сверяйте внешний IP и список DNS вместе.
Zero‑Trust/EDR‑клиенты могут переписывать резолвер. Локализуйте на системном уровне и только затем меняйте узлы.
Сверяйте системный DNS, DoH, сайты‑проверки и внешний IP одновременно.
FAQ
Q1: Что такое утечка DNS?
A: DNS‑запросы обошли ожидаемую прокси‑цепочку. Даже с корректным внешним IP цель может раскрыться.
Q2: Что безопаснее — fake‑ip или redir‑host?
A: В большинстве случаев fake‑ip стабильнее и защищённее, redir‑host — для совместимости.
Q3: Почему при отключённом системном DNS всё ещё «течёт»?
A: Часто включён DoH в браузере или корпоративный агент. Проверяйте обе плоскости.
Q4: DoH vs DoT?
A: DoH — HTTPS:443, DoT — TLS:853. Оба дают отдельный путь резолвинга.
Q5: Как валидировать в терминале?
A: Используйте scutil --dns и networksetup -getdnsservers Wi‑Fi, затем сопоставьте с сайтами.
Q6: Почему разные сайты показывают разное?
A: Отличаются точки проверки, кеши и логика. Валидируйте на 2 площадках и записывайте контекст.
Сценарии: разработка и корпоративная сеть
Q1: git/npm в терминале таймаутят, браузер — норм. Это утечка?
A: Не обязательно. Сначала включите TUN и проверьте прокси‑переменные shell. Часто это расхождение путей, а не утечка.
Q2: Корпоративный агент правит DNS. ClashX защитит?
A: Да, но сначала нужно понять, кто владеет системным DNS. Тестируйте на минимальном окружении, затем возвращайте агенты.
Q3: DNS норм, но связь нестабильна
A: Проверьте порядок правил и приоритеты. См. руководство по приоритетам правил.
Итог
Унифицируйте цепочку (ClashX — macOS — браузер), затем валидируйте и фиксируйте. Тогда выводы будут стабильными и воспроизводимыми.