Karing - что такое DNS и как с ним бороться

Введение

Неоптимальная настройка серверов 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 выглядит следующим образом:

  1. Вы вводите в браузере адрес сайта (например, youtube.com)
  2. Ваш компьютер отправляет запрос DNS-серверу
  3. DNS-сервер возвращает IP-адрес сайта
  4. Ваш браузер подключается к этому IP-адресу
  5. Сайт загружается в вашем браузере

Важно понимать: Без DNS вы не сможете получить доступ к сайтам по их обычным адресам. Вы можете подключиться к VPN, но если DNS-запросы блокируются или перехватываются, сайты все равно будут недоступны.

DNS-блокировка

DNS-блокировка - один из самых распространенных методов цензуры в интернете. При этом способе блокировки интернет-провайдеры или государственные органы перехватывают DNS-запросы и возвращают либо ошибку, либо IP-адрес заглушки вместо реального адреса заблокированного сайта.

Как работает DNS-блокировка:

  1. Вы пытаетесь открыть заблокированный сайт (например, telegram.org)
  2. Ваш запрос уходит к DNS-серверу провайдера
  3. Вместо реального IP-адреса сервер возвращает ошибку или IP-адрес заглушки
  4. Сайт не загружается или открывается страница-заглушка

Признаки DNS-блокировки:

  • Сайт не открывается, но при этом другие сайты работают
  • Открывается страница с сообщением о блокировке
  • Браузер показывает ошибку "Сервер не найден" или "ERR_NAME_NOT_RESOLVED"
  • Сайт открывается через VPN, но не напрямую

DNS-утечка

DNS-утечка - это ситуация, когда DNS-запросы обходят VPN-туннель и отправляются напрямую провайдеру. Это может произойти даже при правильно настроенном VPN, если DNS не сконфигурирован должным образом.

Последствия DNS-утечки:

  • Провайдер видит, какие сайты вы пытаетесь посетить
  • Может применять DNS-блокировку к вашим запросам
  • Снижается эффективность обхода цензуры
  • Угроза приватности и безопасности

Чтобы проверить наличие DNS-утечки:

  1. Подключитесь к VPN
  2. Посетите сайт для проверки DNS, например, browserleaks.com
  3. Проверьте, какой DNS-сервер отображается в результатах
  4. Если это DNS-сервер вашего провайдера - у вас утечка

Настройка DNS в Karing

Изначально, при запуске программы в режиме Новичок, используется простейший (неоптимальный) вариант настройки DNS, задача которого – обеспечение минимальной функциональности сразу, при включении. Минус режима Новичок – низкий уровень безопасности и надежности. Чтобы обратиться к настройкам DNS, можно нажать значок в виде двух коробочек на главном экране программы, или нажать стрелку у надписи DNS в меню настроек.

Выглядит это в режиме Новичок так:

DNS
DNS

Пояснения: local – это серверы, известные вашей системе. Как правило, это нешифрованные udp-серверы, предоставленные вашим провайдером автоматически. И встроенные в Андроид запросы к серверу 8.8.8.8.

В результате, поскольку запросы нешифрованы – провайдеру доступна информация о посещаемых вами сайтах. Также может быть подменен результат вашего обращения, например: этот сайт не обнаружен или заблокирован. При текущей настройке – это касается лишь прямого потока, то есть потока, идущего в обход прокси-сервера. А в случае прокси-сервера – это в данном случае пункт Трафик через Proxy – используется шифрованный по технологии DoH (DNS over HTTPS) публичный сервер. Эти обращения перехватить и расшифровать невозможно.

Минусом упрощённой настройки является отсутствие резервирования – DNS сервер может оказаться недоступен, или долго отвечать – поэтому желательно в настройках указывать несколько серверов. От надёжности и правильности настроек в этом месте сильно зависит работа программы в целом, и работа сервисов, использующих это соединение.

Karing снабжен достаточно мощными инструментами для настроек DNS в сложных ситуациях, а также базой из 50 известных серверов. Кроме того, можно добавить и собственный любимый сервер. Это важное отличие от большинства других программ, в которых такие настройки бедны, и нет средств тестирования серверов DNS.

Для получения доступа к расширенным настройкам DNS, отключите в главном меню настроек режим Новичок.

Расширенные настройки 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-сервер
DNS-сервер

Запустим тестирование, нажав значок молнии вверху. Получим результат:

Результат тестирования DNS-серверов
Результат тестирования 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-провайдеры

Выбор 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 и нет ли утечек:

Как выполнить тест:

  1. Откройте настройки Karing
  2. Перейдите в раздел "Инструменты" или "Диагностика"
  3. Выберите "Тест утечки DNS"
  4. Дождитесь завершения теста
  5. Проверьте результаты

Ручное тестирование

Вы также можете вручную проверить DNS-настройки:

Windows (командная строка):

nslookup google.com

Linux/macOS (терминал):

dig google.com

или

nslookup google.com

Рекомендации по настройке DNS:

  • Используйте зашифрованный DNS (DoH или DoT) для максимальной безопасности
  • Выбирайте DNS-провайдера с хорошей репутацией и прозрачной политикой конфиденциальности
  • Регулярно проверяйте наличие DNS-утечек
  • Для обхода цензуры используйте DNS через VPN-туннель
  • Рассмотрите использование DNS с фильтрацией рекламы для повышения безопасности