Половина точности маршрутизации - это DNS: при отравленном резолвинге даже идеальные правила соединяют не туда. В Clash встроен собственный DNS-сервер, который при верной настройке лечит и подмену, и медленный резолвинг.
Базовая конфигурация
dns:
enable: true
listen: 0.0.0.0:53
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- 1.1.1.1 # повседневные резолверы
- 8.8.8.8
fallback: # шифрованные - против подмены
- https://1.1.1.1/dns-query
- tls://8.8.8.8:853
fallback-filter:
geoip: true
geoip-code: CN
nameserver обслуживает будни, fallback страхует шифрованным DNS. С fallback-filter локальные ответы берутся у первых, а подозрительные (иностранный IP) - у fallback.
Режим fake-ip (рекомендуется)
На запрос резолвинга Clash мгновенно отвечает «фейковым» адресом зарезервированного диапазона (198.18.x.x) и запоминает соответствие. Программа соединяется с фейковым IP; Clash при подключении восстанавливает домен, сопоставляет правила по имени, а настоящий резолвинг делает узел на своей стороне. Выгоды:
- нулевая задержка резолвинга (нет настоящего похода в DNS);
- доменные правила всегда срабатывают (соединение несёт своё имя);
- локального резолвинга нет вовсе - подмена и утечки исключены по построению.
Режим redir-host
Возвращает настоящие IP; сопоставление идёт по IP. Для случаев совместимости (софт проверяет адрес или реально нуждается в нём). Цена - медленнее и выше риск утечек. На каждый день - fake-ip.
fake-ip-filter: исключения
Некоторым сценариям нужны настоящие IP (обнаружение устройств в LAN, отдельные игровые лаунчеры, проверки связности Windows). Перечислите их - и они минуют fake-ip:
fake-ip-filter:
- "*.lan"
- "+.stun.*.*"
- "+.msftconnecttest.com"
- "+.msftncsi.com"
Применение и проверка
- В подписках секция dns обычно есть; чтобы переопределить - внедряйте через Mixin.
- Режим TUN требует встроенный DNS, настоятельно с fake-ip (плюс dns-hijack).
- Проверка:
nslookup google.com 127.0.0.1с ответом 198.18.x.x - fake-ip работает.