Что на самом деле делает fake-ip
При включённом fake-ip программа спрашивает адрес example.com, а ядро ничего не разрешает. Оно отдаёт неиспользованный адрес из зарезервированного диапазона, обычно 198.18.0.0/16. Когда программа подключается к этому адресу, ядро смотрит в собственную таблицу, восстанавливает имя домена и сопоставляет правила именно с именем.
Экономится один настоящий запрос. Нет запроса — нет и шанса получить отравленный ответ, и не надо ждать поездки до авторитетного сервера за границей. Плата в том, что всё, чему нужен настоящий адрес, теперь видит заглушку из 198.18. Обнаружение устройств в локальной сети, часть P2P-программ и фаза прямого соединения в некоторых играх на этом ломаются.
Партнёрский материалОткуда взять ссылку на подписку?Партнёрский сервис даёт 1 ГБ высокоскоростного трафика Гонконга при регистрации — импорт в один клик.Получить быстрые серверыРабочая отправная точка
dns:
enable: true
ipv6: false
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- "*.lan"
- "*.local"
- "+.pool.ntp.org"
nameserver:
- 223.5.5.5
- 119.29.29.29
fallback:
- https://dns.google/dns-query
- tls://1.0.0.1:853
nameserver — набор резолверов по умолчанию, обычно те, что быстрее отвечают в вашей сети. В fallback кладут шифрованные резолверы по DoH или DoT для имён, локальному ответу на которые доверять не хочется. Это не основной и резервный: ядро само решает, какому ответу верить, поэтому всё, что попало в fallback, должно быть источником, которому вы действительно доверяете.
Что класть в fake-ip-filter
- Локальные имена.
*.lan,*.local, имя, под которым открывается админка роутера. Выдайте им поддельный адрес — и до собственного железа вы больше не достучитесь. - Сервисы, которым нужен настоящий адрес: синхронизация времени, часть механизмов обнаружения во внутренней сети, трекеры загрузчиков.
- Домены, которые ваши правила и так отправляют напрямую. Они всё равно уходят через локальную сеть, и заглушка ничего не даёт.
- Игры. Здесь общего ответа нет. Некоторые проекты попадают в лобби по имени, а на матчевый сервер идут по чистому IP, и с fake-ip дорогу они не находят. Если игра перестала заходить в комнаты под TUN, первым делом добавьте её домены сюда.
Когда возвращаться к redir-host
redir-host — старый подход: имя разрешается по-настоящему, само имя запоминается, и при пересылке правила всё равно сопоставляются с именем. Он медленнее и оставляет вас под риском отравленного ответа, но адреса настоящие, поэтому сюрпризов с совместимостью заметно меньше.
Решение тут несложное. Если вы просто сидите в интернете, смотрите видео и работаете с инструментами разработчика — с fake-ip хлопот меньше. Если вы гоняете P2P, играете по сети, возитесь с десятком устройств в локалке или уже набили в filter дюжину исключений, лишь бы fake-ip не мешал, переходите на redir-host и не спорьте с ним дальше.
nameserver-policy для исключений
Некоторые имена дают правильный ответ только от конкретного резолвера: очевидный случай — домены корпоративной сети, и туда же сайты, чей CDN отдаёт вменяемый узел только локальному резолверу. nameserver-policy закрепляет резолвер за шаблоном домена, и это гораздо точнее, чем менять весь список nameserver.
nameserver-policy:
"+.corp.example.com": 10.0.0.53
"geosite:cn": [223.5.5.5, 119.29.29.29]
ipconfig /flushdns. И помните: адрес из 198.18, который возвращает nslookup при включённом fake-ip, — это работающий замысел, а не поломка.