Главная >> Инструкции >> Настройка DNS в Debian

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

Итак, сегодня мы поговорим с вами о настройке DNS в Debian. Тем, кто «в теме», не потребуются объяснения, но для остальных пройдемся от малого. Что такое DNS? Это компьютерная распределенная система для получения информации о доменах. Она используется для получения IP-адреса той самой уютной ЖЖшки, или ВК. Нужна она прежде всего для человека, так как нам, как ни странно, будет проще запомнить адрес в буквенном формате, чем в числовом. Но это не единственный плюс.

Раньше сеть была гораздо меньше нынешней и на каждой машине находился файл hosts, его рассылали автоматически и «централизованно». Он отвечал за преобразование между доменными и IP-адресами, но сеть непрерывно росла, а данный метод уже явно не справлялся с поставленными задачами. Вот здесь и выходит на сцену механизм, способный делать все то же самое и в больших объемах — DNS. С основными определениями разобрались, теперь перейдем к сути статьи.


Содержание статьи

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

Сперва мы ознакомимся с файлом /etc/resolv.conf. Это — это основной файл настройки библиотеки распознавателя имен DNS. Распознаватель - это библиотека на языке , именно она обеспечивает доступ к DNS для программ в системе.

Его функции настроены на следующее:

  • На проверку записей в файле /etc/hosts или на нескольких серверах DNS;
  • На использование базы данных хостов NIS (Информационная служба сети);

В современных Linux-системах, которые используют systemd, локальные приложения получают доступ к DNS через демон system-resolved. По умолчанию эта служба имеет четыре различных режима и использует по умолчанию файл-заглушку. Его путь: /run/systemd/resolve/stub-resolv.conf.

В данном файле используется в качестве единственного DNS-сервера заглушка — 127.0.0.53, которая перенаправляет обращения к локальному DNS серверу, а он, в свою очередь уже получает информацию от других серверов в интернете. Надеюсь, вы поняли суть.

К сожалению, из-за того, что /etc/resolv.conf не прямо управляется службой systemd-resolved, а иногда с помощью использования initscripts или NetworkManager, любые пользовательские изменения НЕ будут сохранены. С учетом всех сложностей, описанных выше, я хочу поделиться с вами информацией о том, как настроить DNS на Debian в этом злополучном файле /etc/resolv.conf.

Шаг 1. Содержимое /etc/resolv.conf

Чтобы это сделать мы откроем терминал и напишем команду:

cat /etc/resolv.conf

В нем мы видим имя сервера nameserver 192.168.1.1 и больше ничего. Это пока что, но мы к нему вернемся.

Шаг 2. Установка resolvconf

Обязательно обновим систему с помощью команды:

sudo apt update

После обновления устанавливаем resolvconf. Для этого пишем команду:

sudo apt install resolvconf

После установки система должна автоматически запустить службу resolvconf.service. Чтобы проверить так ли это вам надо будет использовать команду:

sudo systemctl status resolvconf.service

Здесь мы видим, что служба не запущена, но бывает, что триггер срабатывает автоматически. Так или иначе, нам надо запустить эту службу. Используем следующие команды:

sudo systemctl start resolvconf.service

sudo systemctl enable resolvconf.service

sudo systemctl status resolvconf.service

Как вы поняли, с помощью sudo systemctl start resolvconf.service и sudo systemctl enable resolvconf.service мы запускаем службу, а sudo systemctl status resolvconf.service отобразит состояние активности этой службы.

Шаг 3. Настройка DNS

Теперь откройте файл /etc/resolvconf/resolv.conf.d/head. Делается это с помощью команды:

sudo nano /etc/resolvconf/resolv.conf.d/head

Прекрасно, следующим шагом будет внесение данных в этот файл. Вписываем в него следующие строки так, как это показано на скриншоте:

nameserver 8.8.8.8
nameserver 8.8.4.4

Сохраняем изменения с помощью ctrl+o -> Enter -> ctrl+x. Теперь надо перезагрузить систему, чтобы изменения пришли в действие.

Шаг 4. Проверяем файл /etc/resolv.conf

После перезагрузки снова открываем терминал и пишем команду для запуска службы (это вторичная мера, у меня, например, триггер сработал автоматически):

sudo systemctl start resolvconf.service

Видим, что служба запущена. Переходим в наш конфигурационный файл, который был описан в самом начале статьи. Используем команду:

cat /etc/resolv.conf

 

На скриншоте отображены те самые данные, которые мы внесли в файл — nameserver 8.8.8.8 и nameserver 8.8.4.4 На этом все! Настройка DNS Debian завершена. Достаточно легко и просто, а главное, что все работает.

Creative Commons License
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

16 комментариев к “Настройка DNS в Debian”

  1. В листинге указываете одни сервера:
    servername 8.8.8.8
    servername 8.8.4.4

    На скриншоте и при проверке resolv.conf другие: servername 10.10.8.8 и servername 10.10.10.10
    Правая рука не знает, что делает левая?

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

      Ответить
      • А вот не надо так грубо, все допускают ошибки и ничего в этом страшного нет. Посмотрите другие мои статьи для более объективного взгляда.

        Интересно, вы так же реагируете на свои ошибки?

        Ответить
        • Ути, слатенькое какое. В приличном обществе не прилично выставлять напоказ свои ошибки, поэтому добросовестные пейсатели обычно, перед тем как опубликовать, тщательно проверяют свою писанину. Другие ваши статьи смотрел, они чудовищны и никчёмны. Вас стоит слушать и молчать, слушать и молчать, слушать и молчать. Слушать внимательно. Может тогда вы хоть чему-нибудь научитесь

          Ответить
  2. Предполагаю, что у вас заблокированы Google DNS провайдером. Использовал в такой ситуации яндекс днс 77.88.8.8 -заработало отлично.

    Ответить
  3. "Как вы поняли, с помощью sudo systemctl start resolvconf.service и sudo systemctl enable resolvconf.service мы запускаем службу"
    enable не запускает службу, а добавляет её в автозагрузки.

    Ответить
  4. apt intstall bind9 -y
    cd /etc/bind
    cp db.local db.название машинуы.work
    cp db.local db.название машыны2.work
    nano db.название машны.work
    nano db.название машны2.work
    @ IN NS название машны.work.
    @ IN A (50)
    @ IN AAAA ::1
    50 IN PTR hqd-srv.hqd.work
    1 IN PTR hqd-r.hqd.work
    hqd-r IN A ip(1)
    hqd-srv IN A ip(50)
    так два раза делай и спина не будет болет 🙂

    Ответить

Оставьте комментарий