ClashX: чек‑лист по предотвращению утечек DNS — от браузера до системы

Проверка 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 vs redir‑host

fake-ip чаще лучше для защиты и скорости; redir-host — для совместимости в локальных сценариях.

  1. После правок перезагрузите конфиг
  2. Сравните минимум два узла
  3. Меняйте по одному параметру и фиксируйте результат

Проверка на уровне macOS

Даже при верном конфиге система может выдать неожиданный путь при нескольких интерфейсах.

Команды

# Детали резолвера
scutil --dns

# DNS для Wi‑Fi
networksetup -getdnsservers Wi-Fi

# DNS для Ethernet
networksetup -getdnsservers Ethernet

# Порядок сетевых сервисов
networksetup -listnetworkserviceorder

# Сброс кеша
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

Пошагово

  1. Оставьте один активный интерфейс
  2. Зафиксируйте узел в ClashX
  3. Сохраните вывод scutil --dns
  4. Сравните networksetup -getdnsservers Wi-Fi
  5. Очистите кеш, затем проверьте сайты
  6. Запишите время, узел и итоги
🚨
Несколько интерфейсов

Wi‑Fi + Ethernet + корпоративные агенты и VPN могут переназначить приоритет. Упростите окружение на время диагностики.

Влияние DoH в браузерах

DoH может обойти системный DNS. Для базовой валидации отключите его, чтобы получить стабильный эталон.

🌐
Двухсмысленность DoH

Защищает от подмены, но создаёт независимый путь резолвинга. Сначала выровняйте политику, потом включайте обратно.

Chrome

  1. Настройки → Приватность и безопасность → Безопасность
  2. Отключите «Использовать защищённый DNS»
  3. Проверьте, затем при необходимости включите

Firefox

  1. Настройки → Приватность и защита
  2. В разделе DNS over HTTPS выберите «Выключено»
  3. Перезапустите и проверьте

Edge

  1. Настройки → Конфиденциальность, поиск и службы
  2. Отключите «Использовать защищённый DNS»
  3. Повторите проверку
⚠️
Признаки влияния DoH

В терминале — один резолвер, в браузере — публичный 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:

Вывод:
- Есть ли утечка:
- Основание:
- Изменения:
- Точка отката:
dnsleaktest.com
Список резолверов
ipleak.net
Внешний IP + DNS
browserleaks.com
Детали браузера
whoer.net
Проверка региона

Стандартная процедура

  1. Зафиксируйте узел, отключите DoH, запишите системный DNS
  2. Проверьте 2 площадки, сохраните скриншоты
  3. Смените узел, проверьте, меняется ли «личность» DNS
  4. Если конфликт, возвращайте переменные (DoH, интерфейсы, корпоративные клиенты)
  5. Зафиксируйте «базовую линию без утечек»

Типичные ложные выводы

🐢
Медленный узел ≠ утечка

Латентность/потери ухудшают опыт, но не доказывают утечку. Смотрите на личность резолвера.

🗺️
CDN‑регион ≠ утечка

CDN может отдавать нестандартный регион. Сверяйте внешний IP и список DNS вместе.

🛡️
Корпоративный агент перехватывает 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 — браузер), затем валидируйте и фиксируйте. Тогда выводы будут стабильными и воспроизводимыми.