Реклама: Недорогие виртуальные серверы от «Хостера года» 2021, 2022 и 2024 годов. Оплата картами банков РФ, по СБП и электронными деньгами. Размещение в России, Нидерландах и Казахстане. Подробнее.

Сам себе DNS сервер или как не использовать DNS серверы провайдера

Опубликовано: 22 октября 2025
Раздел(ы): Локальные и глобальные сети
Просмотры: 149
Комментарии: 0

При подключении к глобальной сети Интернет ваш компьютер получает IP адрес, маску сети, адрес шлюза по-умолчанию и адрес DNS сервера. Как правило последний — это сервер провайдера и служит для преобразования символьных наименований ломенных имен в числовые IP адреса.

Вы можете в качестве альтернативы использовать другие DNS серверы, например от Google (8.8.8.8), CloudFlare (1.1.1.1), Quad9 (9.9.9.9) или Яндекс (77.88.8.8). Или свой собственный DNS сервер. В дальнейшем я буду называть его DNS Resolver.

Как работает система DNS в интернете

Пришло время кратко рассказать как работает система доменных имен в интернете.

  1. Доменное имя регистрируется (покупается) в уполномоченной организации. По-умолчанию у каждого доменного имени лишь одна настройка (параметр) — это адрес(а) сервера(ов) ресурсных записей. Так называемые NS серверы.
  2. Информация о доменном имени и его NS серверах хранится на 13-ти корневых DNS серверах интернета.
  3. На NS серверах хранятся все записи для доменного имени, например А запись связывающая символьное имя с IP адресом.
  4. При попытке соединения по доменному имени, запрос от компьютера пользователя попадает на DNS Resolver. Если у него нет информации, то он узнает у корневых DNS серверов адрес NS сервера где хранятся ресурсные записи доменного имени и отправляет запрос к этому NS серверу. Ответ возвращает пользователю, а копию ответа сохраняет у себя.
  5. При последующем обращении к этому же доменному имени ответ отдается из кеша DNS Resolver

Кому нужен свой DNS сервер

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

Отсюда следует, чем больше пользователей используют один и тот же DNS сервер, тем больше вероятность получить быстрый ответ из кеша. Следовательно вероятность нахождения данных в кеше у серверов Google или Яндекс выше, чем у вашего персонального индивидуального сервера.

Поэтому если у вас пара компьютеров, то использовать свой собственных DNS Resolver для ускорения работы не имеет никакого смысла. Сервера провайдера или Яндекс будут работать быстрее.

Определить самый быстрый для вашего подключения DNS сервер можно с помощью программы Domain Name Speed Benchmark — https://www.grc.com/DNS/benchmark.htm.

Пример использования в этой статье. На скриншоте выше видно, что у меня локальный DNS Resolver работает быстрее серверов Яндекс, Google и других.

Но на какую нагрузку расчитаны DNS серверы провайдера? Меняется ли их скорость работы в зависимости от количества подключений?

Я думаю, если у вас больше 100 компьютеров (устройств), то вам стоит подумать об использовании собственного DNS сервера.

Проблема утечки DNS

Собственный DNS Resolver избавит вас от так называемой утечки DNS запросов. Это тот случай, когда кто-то другой знает к каким доменным именам вы обращаетесь.

Проверить наличие утечки DNS можно он-лайн. Например здесь и здесь. Если утечек нет, то в результатах ответов адреса обнаруженных DNS серверов должны совпадать с вашими адресами.

На скриншотах выше видно, что адреса совпадают и утечек нет.

Как настроить свой собственный DNS сервер

Я приведу пример как настроить свой собственный DNS Resolver на основе операционной системы Debian. Для этого буду использовать сервер (сервис) Unboand. Unbound — это продукт компании NLnet Labs, реализующий в том числе кэширующий DNS-резолвер. Он распространяется бесплатно в формате с открытым исходным кодом под лицензией BSD.

Установка его крайне проста, так как пакет Unbound доступен в репозитории Debian:

apt install unbound

Настройки DNS сервера хранятся в файле /etc/unbound/unbound.conf

Unbound корректно работает «из коробки». Но для своих нужд его нужно донастроить.

Я использую следующий вариант.

server:
# DNS сервер Unbound прослушивает все интерфейсы. По умолчанию localhost (127.0.0.1 и ::1)
  interface: 0.0.0.0
# Порт для прослушивания. Совпадает с портом по-умолчанию
  port: 53
# Запрещаем работу по протоколу IPv6. IPv4 включен по-умолчанию
  do-ip6: no
# Не отвечаем на запросы о версии DNS-сервера Unbound и пр.
  hide-identity: yes
  hide-version: yes
  harden-referral-path: yes
# Настройки кэширования.
  cache-min-ttl: 300
  cache-max-ttl: 14400
  serve-expired: yes
  serve-expired-ttl: 3600
# Предварительная загрузка часто запрашиваемых DNS-записей у которых истекает TTL. По умолчанию: no (выключено)
  prefetch: yes
  prefetch-key: yes
  target-fetch-policy: "3 2 1 1 1"
# Порог нежелательных ответов
  unwanted-reply-threshold: 10000000
  rrset-cache-size: 256m
  msg-cache-size: 128m
  so-rcvbuf: 1m
# Исключаем из ответов DNS-сервера адреса диапазона частных IP-адресов
# Это необходимо для защиты от уязвимости "DNS rebinding"
  private-address: 192.168.0.0/16
  private-address: 169.254.0.0/16
  private-address: 172.16.0.0/12
  private-address: 10.0.0.0/8
  private-address: fd00::/8
  private-address: fe80::/10
# Определяем адреса на запросы от которых будет отвечать сервер
  access-control: 192.168.0.0/16 allow
  access-control: 172.16.0.0/12 allow
  access-control: 10.0.0.0/8 allow
  access-control: 127.0.0.1/32 allow
# Прочее
  chroot: ""
  logfile: /var/log/unbound.log

Подробнее о всех настройках можно почитать здесь.

Стандартные команды управления unbound

Проверка файла конфигурации:

unbound-checkconf

Запуск

systemctl start unbound

Перезагрузка

systemctl restart unbound

Остановка

systemctl stop unbound

Статус работы

systemctl status unbound

Автозапуск при старте операционной системы

systemctl enable unbound

Выводы

При указанных настройках мой DNS Resolver работает быстрее популярных серверов Google и Яндекс. Его использование так же устраняет утечку DNS.

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

Благодарности

При написании статьи были использованы следующие ресурсы:

  1. https://notby.net/sobstvenniy-dns-server-unbound-v-linux
  2. https://wiki.archlinux.org/title/Unbound_(Русский)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить" Вы даёте свое согласие на обработку введенной персональной информации в соответствии с Федеральным Законом №152-ФЗ от 27.07.2006 "О персональных данных", на условиях и для целей определенных политикой конфиденциальности сайта.
© Юрий Рассадников, 2011 - 2025
uptime узнать
Домен : reg.ru
Хостинг : adman.com
SQL - 4 | 0,246 сек. | 6.33 МБ