Введение
Неоптимальная настройка серверов DNS в программе – самая частая причина невозможности соединиться с VPN-серверами или какими-либо сайтами. Если у вас что-то не хочет грузиться – вам в первую очередь сюда.
Сначала немного теории для понимания.
DNS – это службы и международная иерархическая система серверов, позволяющая cопоставить (разрешить) по запросу доменное символьное имя, например google.com, с его текущим IP-адресом, например 108.177.14.138, который дальше и используется программами для доступа к сетевому ресурсу.
Нет разрешения имени – нет доступа.
Исходно, все запросы от клиентов к DNS-серверам отправлялись в нешифрованном виде. Это, к сожалению, использовалось на первых порах для цензуры запросов, а также слежки. Так что, если вы используете обычные нешифрованные UDP DNS-серверы, любезно предоставленные вам провайдером - провайдер по этим обращениям видит, к каким сайтам вы подключаетесь. Более того, часть запросов будет заблокирована уже на этом этапе.
К счастью, есть публичные (общедоступные) сервера DNS, поддерживающие шифрованные запросы по технологиям DoH, DoT и др. В этом случае информация о посещаемых вами сайтах становится недоступна провайдеру. Следовательно, блокировка запроса о разрешении имени невозможна. Используйте подобные серверы везде, где это возможно. В частности, на входном домашнем роутере и на телефонах (частный DNS-сервер).
Что такое DNS
DNS (Domain Name System - система доменных имен) - это интернет-справочник, который преобразует удобочитаемые доменные имена (например, google.com) в IP-адреса (например, 142.250.180.78), которые используются компьютерами для соединения между собой.
Процесс работы DNS выглядит следующим образом:
- Вы вводите в браузере адрес сайта (например, youtube.com)
- Ваш компьютер отправляет запрос DNS-серверу
- DNS-сервер возвращает IP-адрес сайта
- Ваш браузер подключается к этому IP-адресу
- Сайт загружается в вашем браузере
Важно понимать: Без DNS вы не сможете получить доступ к сайтам по их обычным адресам. Вы можете подключиться к VPN, но если DNS-запросы блокируются или перехватываются, сайты все равно будут недоступны.
DNS-блокировка
DNS-блокировка - один из самых распространенных методов цензуры в интернете. При этом способе блокировки интернет-провайдеры или государственные органы перехватывают DNS-запросы и возвращают либо ошибку, либо IP-адрес заглушки вместо реального адреса заблокированного сайта.
Как работает DNS-блокировка:
- Вы пытаетесь открыть заблокированный сайт (например, telegram.org)
- Ваш запрос уходит к DNS-серверу провайдера
- Вместо реального IP-адреса сервер возвращает ошибку или IP-адрес заглушки
- Сайт не загружается или открывается страница-заглушка
Признаки DNS-блокировки:
- Сайт не открывается, но при этом другие сайты работают
- Открывается страница с сообщением о блокировке
- Браузер показывает ошибку "Сервер не найден" или "ERR_NAME_NOT_RESOLVED"
- Сайт открывается через VPN, но не напрямую
DNS-утечка
DNS-утечка - это ситуация, когда DNS-запросы обходят VPN-туннель и отправляются напрямую провайдеру. Это может произойти даже при правильно настроенном VPN, если DNS не сконфигурирован должным образом.
Последствия DNS-утечки:
- Провайдер видит, какие сайты вы пытаетесь посетить
- Может применять DNS-блокировку к вашим запросам
- Снижается эффективность обхода цензуры
- Угроза приватности и безопасности
Чтобы проверить наличие DNS-утечки:
- Подключитесь к VPN
- Посетите сайт для проверки DNS, например, browserleaks.com
- Проверьте, какой DNS-сервер отображается в результатах
- Если это DNS-сервер вашего провайдера - у вас утечка
Настройка DNS в Karing
Изначально, при запуске программы в режиме Новичок, используется простейший (неоптимальный) вариант настройки DNS, задача которого – обеспечение минимальной функциональности сразу, при включении. Минус режима Новичок – низкий уровень безопасности и надежности. Чтобы обратиться к настройкам DNS, можно нажать значок в виде двух коробочек на главном экране программы, или нажать стрелку у надписи DNS в меню настроек.
Выглядит это в режиме Новичок так:
Пояснения: local – это серверы, известные вашей системе. Как правило, это нешифрованные udp-серверы, предоставленные вашим провайдером автоматически. И встроенные в Андроид запросы к серверу 8.8.8.8.
В результате, поскольку запросы нешифрованы – провайдеру доступна информация о посещаемых вами сайтах. Также может быть подменен результат вашего обращения, например: этот сайт не обнаружен или заблокирован. При текущей настройке – это касается лишь прямого потока, то есть потока, идущего в обход прокси-сервера. А в случае прокси-сервера – это в данном случае пункт Трафик через Proxy – используется шифрованный по технологии DoH (DNS over HTTPS) публичный сервер. Эти обращения перехватить и расшифровать невозможно.
Минусом упрощённой настройки является отсутствие резервирования – DNS сервер может оказаться недоступен, или долго отвечать – поэтому желательно в настройках указывать несколько серверов. От надёжности и правильности настроек в этом месте сильно зависит работа программы в целом, и работа сервисов, использующих это соединение.
Karing снабжен достаточно мощными инструментами для настроек DNS в сложных ситуациях, а также базой из 50 известных серверов. Кроме того, можно добавить и собственный любимый сервер. Это важное отличие от большинства других программ, в которых такие настройки бедны, и нет средств тестирования серверов DNS.
Для получения доступа к расширенным настройкам DNS, отключите в главном меню настроек режим Новичок.
В верхней части скриншота вы видите один из возможных вариантов настройки. Советую начать с неё – это гарантированно рабочий вариант.
Включить правила для DNS – это значит, мы разрешаем направить запросы согласно выбранной вами ниже стратегии. Без этого переключателя маршрутизация DNS-запросов работать не будет, все запросы будут отправляться одним путем, как в более примитивных программах. Если простой вариант работает – хорошо, но так бывает далеко не всегда.
[Прямой поток] включить ECS – технология, исключающая "дрейф" DNS из-за использования запросов к нескольким серверам. При этом в запросе к DNS-серверам учитывается местоположение вашего устройства (по IP-адресу), что позволяет подобрать для вас наиболее близкие CDN-серверы, что увеличит скорость доставки контента. Технология включается только для Прямого потока, то есть для трафика, передаваемого напрямую, минуя прокси-сервер. Однако встречались случаи, когда включение этой технологии мешало работе системы DNS в целом. Временное выключение данной настройки может помочь локализации проблемы.
[Трафик через Proxy] Способ разрешения в DNS.
Karing предлагает три варианта, у каждого свои плюсы и минусы.
Прямой поток (Direct) – все запросы отправляются напрямую, минуя прокси-сервер. Это быстрее, но не всегда выбранные вами DNS-сервера окажутся доступны. В условиях различных блокировок и плохой связности сети – это плохой способ.
Текущий сервер (Current selected) – запросы к серверам DNS отправляются внутри вашего установленного соединения. Если вы используете шифрованные серверы, например, https://8.8.8.8/dns-query, то вы получите даже двухслойное шифрование. Технологию DoH пытаются блокировать. В частности, в Иране очень многие подобные серверы заблокированы. При правильном подборе серверов такой вариант очень устойчив.
Минусы – такой запрос несколько медленнее прямого запроса к udp DNS-серверу. На скорость соединения это не влияет, но может увеличить время первого открытия сайта. Кроме того, если у вас нет работающего VPN – соединения, то и разрешения имён не будет.
FakeIP – запрос идёт тоже через соединение с прокси-сервером, но прокси-сервер меняет в запросе к DNS-серверу ваш IP-адрес на свой. Этот режим иногда ускоряет "отзывчивость" запросов, и особенно рекомендуется для режима TUN (В телефонах Karing всегда работает только в режиме TUN).
Минусы – если у вас работает некая программа через VPN, и соединение с прокси разрывается, возможно, придется перезапустить эту программу для восстановления связи. Кроме того, не все доступные прокси-серверы полноценно поддерживают данную технологию – возможно, вам придётся подбирать нужный прокси-сервер (соединение, ключ).
Статический IP – это некоторый аналог файла hosts.
hosts – это текстовый файл на вашем компьютере или телефоне, который содержит информацию о некоторых именах хостов, сопоставленных IP-адресам. Для разрешения имен он используется в первую очередь, раньше любых DNS.
В этом разделе можно добавить статические DNS-записи. Скажем, вашего собственного сервера в Инете.
Заполняется запись здесь очень легко – в одной форме вы вводите имя и сохраняете. А открыв это имя, вводите его ip-адрес. Это имя будет разрешаться даже оффлайн и использоваться до любых обращений к DNS.
Тестовое доменное имя – используется для тестирования DNS-серверов. Можете его поменять, но зачем?
TTL – время жизни записи о разрешении адреса в кэше DNS. По умолчанию 12 часов. Смысла менять нет: при уменьшении времени DNS-запросы будут выполняться чаще, а при увеличении – возрастёт как объем кэшируемых данных, так и риск получения устаревшей (и неверной) записи.
При нажатии на выделенную стрелку вы увидите нижнюю часть скриншота. Это текущие настройки, которые мы и будем тестировать и менять.
Первая строка – DNS-сервер. Это сервер, с помощью которого определяются ip-адреса других DNS-серверов, которые также могут иметь символьное имя. В дальнейшей работе он не участвует. Поэтому для него допустимо значение local и нешифрованные udp. Нажмите стрелку вправо у первой строки. Раскроется список на несколько экранов с рекомендуемыми публичными DNS-серверами. Разумеется, при желании можно добавить и свой сервер – это три точки в углу и плюс в раскрывшемся подменю.
Запустим тестирование, нажав значок молнии вверху. Получим результат:
Каждая строка содержит результат проверки соответствующего сервера: первое число – длительность "пинга" сервера, второе – время его ответа на запрос. Красный треугольник означает, что тест неуспешен (сервер недоступен). Серверы с меньшими временами – лучше. Серым выделены серверы, выбор которых в этой таблице запрещён.
Поскольку в качестве способа разрешения запросов к DNS выше выбран FakeIP (или Текущий сервер) – то тесты будут работать только при рабочем и установленном соединении с VPN-сервером. Если у вас его пока нет, или оно нерабочее – вы во всех строках получите отказы, в виде восклицательного знака в треугольнике.
Тем не менее, проанализировать доступность серверов можно. Временно на странице автовыбор сервера (клик по левой половине серой полоски на Главном экране) смените авто или конкретный сервер на Напрямую (Direct), а на странице DNS - способ разрешения поставьте Напрямую. Выполните тест DNS.
После тестирования, не забудьте вернуть эти настройки обратно, и способ разрешения, и выбор на авто или на конкретный сервер!
Если у вас на компьютере DNS по непонятным причинам "не строится", что-то не открывается, а ключи при тестировании выдают отрицательный результат:
1. Может помочь отключение на компьютере ipv6.
2. Сброс кэша DNS - на компьютере с Windows выполните из консоли с административными правами
ipconfig /flushdns
На Mac из Терминала
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
DNS-сервер – выберите в таблице тестирования local и 2-3 udp-сервера, ориентируясь на меньшие значения времени. Затемненные серым строки выбрать нельзя.
Для каждой строки со Screen 3.2 можно выбрать не более 4 серверов (но уже и 2-х вполне достаточно). При назначении 4 сервера все остальные строки станут серыми.
В остальных строках, начиная с Прокси-сервер, тоже надо провести настройку. Здесь везде рекомендуется использовать только шифрованные серверы. Необходимо снять галочки с local и udp-серверов, а выбрать серверы, начинающиеся с https или tls. Это позволит использовать шифрованные запросы, недоступные вашему провайдеру для анализа. Настройки в остальных строках можно сделать такими же, как в пункте Прокси-сервер. Но можно использовать и другие DNS-серверы. В результате вы должны получить что-то вроде:
(в строках сетевых потоков виден только первый выбранный DNS-сервер).
Пример настройки:
DNS-сервер: local, Cloudflare DNS udp://1.0.0.1, Google DNS udp://8.8.4.4
Прокси-сервер: Cloudflare DNS https://1.0.0.1/dns-query, Google DNS https://8.8.8.8/dns-query, Ali DNS tls://223.6.6.6
Прямой поток: Cloudflare DNS https://1.0.0.1/dns-query, Google DNS https://8.8.8.8/dns-query, Ali DNS tls://223.6.6.6
Трафик через Proxy: : Cloudflare DNS https://1.0.0.1/dns-query, Google DNS https://8.8.8.8/dns-query, Ali DNS tls://223.6.6.6
Качество настройки в данном месте можно проверить с помощью встроенного теста утечек DNS, находящемся в главном меню. Утечек быть не должно. Утечкой будет считаться, если среди списка DNS-серверов на экране вы увидите DNS вашего провайдера, или сервера своей страны. Утечка не говорит о том, что ваши данные уже слиты, а только о такой вероятности. Но если результат теста неудовлетворителен – проверьте и устраните ошибки в своих настройках DNS.
Если вы запутались с настройками DNS и получили неработоспособную конфигурацию - используйте пункт Сбросить сервер. Это вернёт настройки к начальным. Можно также использовать пункт Автоматически настроить сервер, хотя самостоятельная настройка получается лучше.
Популярные DNS-провайдеры
Выбор DNS-провайдера может существенно повлиять на скорость, безопасность и возможность обхода ограничений. Вот список популярных DNS-сервисов:
Cloudflare (1.1.1.1)
Обычный DNS:
1.1.1.1
1.0.0.1
Зашифрованный DNS:
https://cloudflare-dns.com/dns-query
tls://1.1.1.1
Высокая скорость, хорошая приватность. Не блокирует контент.
Google Public DNS
Обычный DNS:
8.8.8.8
8.8.4.4
Зашифрованный DNS:
https://dns.google/dns-query
tls://dns.google
Высокая надежность, но Google может собирать данные.
AdGuard DNS
Обычный DNS (с блокировкой рекламы):
94.140.14.14
94.140.15.15
Зашифрованный DNS:
https://dns.adguard.com/dns-query
tls://dns.adguard.com
Блокирует рекламу и вредоносные домены.
OpenDNS
Обычный DNS:
208.67.222.222
208.67.220.220
Зашифрованный DNS:
https://doh.opendns.com/dns-query
Хорошая фильтрация контента, но собирает данные.
Тестирование DNS
По окончании настройки DNS, полезно выполнить тест Диагностика сети (Net Check). Тест запускается с главной страницы приложения, значок в верхней строке. Тестовый сервер в строке вы можете выбрать любой. По умолчанию там стоит google.com. Имя сервера надо набирать маленькими буквами, и без указания типа протокола впереди. После выполненного вами теста, имя вашего тестового сервера запомнится. Здесь понимаются и названия серверов на национальных языках. Пример успешного завершения теста:
Все строки должны быть зелеными, красных строк быть не должно. Если часть строк красная – по тесту можно понять, что пошло не так. Если красного нет – всё хорошо, можно пользоваться.
Тест утечки DNS
Этот тест проверяет, правильно ли настроен DNS и нет ли утечек:
Как выполнить тест:
- Откройте настройки Karing
- Перейдите в раздел "Инструменты" или "Диагностика"
- Выберите "Тест утечки DNS"
- Дождитесь завершения теста
- Проверьте результаты
Ручное тестирование
Вы также можете вручную проверить DNS-настройки:
Windows (командная строка):
nslookup google.com
Linux/macOS (терминал):
dig google.com
или
nslookup google.com
Рекомендации по настройке DNS:
- Используйте зашифрованный DNS (DoH или DoT) для максимальной безопасности
- Выбирайте DNS-провайдера с хорошей репутацией и прозрачной политикой конфиденциальности
- Регулярно проверяйте наличие DNS-утечек
- Для обхода цензуры используйте DNS через VPN-туннель
- Рассмотрите использование DNS с фильтрацией рекламы для повышения безопасности