Главная >> Инструкции >> Настройка 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 при копировании материала ссылка на источник обязательна.

17 комментариев к “Настройка 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)
    так два раза делай и спина не будет болет 🙂

    Ответить
  5. HQ-SRV

    Параметры:

    cat < /etc/bind/named.conf.options
    options {
    directory "/var/cache/bind";
    allow-recursion { any; };
    forwarders { 8.8.8.8; };
    dnssec-validation auto;
    listen-on { 127.0.0.1; 192.168.100.2; };
    };
    EOF
    Пречисление зон:

    cat < /etc/bind/named.conf.local
    zone "au-team.irpo" {
    type master;
    file "/etc/bind/db.au-team.irpo";
    };

    zone "168.192.in-addr.arpa" {
    type master;
    file "/etc/bind/db.168.192";
    };
    EOF
    Описание прямой зоны:

    $TTL 1d
    $ORIGIN au-team.irpo.
    @ IN SOA ns admin (
    2025010100 ; Serial
    1h ; Refresh
    1m ; Retry
    1d ; Expire
    1d ; TTL
    )
    @ IN NS ns
    ns IN A 192.168.100.2
    hq-srv IN CNAME ns
    hq-rtr IN A 192.168.100.1
    hq-rtr IN A 192.168.200.1
    hq-rtr IN A 192.168.99.1
    br-rtr IN A 192.168.3.1
    hq-cli IN A 192.168.200.6
    br-srv IN A 192.168.3.2
    moodle IN CNAME hq-rtr
    wiki IN CNAME hq-rtr
    Описание обратной зоны:

    TTL 2d
    $ORIGIN 168.192.in-addr.arpa.
    @ IN SOA ns.au-team.irpo admin.au-team.irpo. (
    2025020820 ; Serial
    1d ; Refresh
    1h ; Retry
    1d ; Expire
    1d ) ; Negative Cache TTL
    ;
    @ IN NS ns.au-team.irpo.
    6.200 IN PTR hq-cli.au-team.irpo.
    2.100 IN PTR hq-srv.au-team.irpo.
    1.100 IN PTR hq-rtr.au-team.irpo.
    1.200 IN PTR hq-rtr.au-team.irpo.
    1.99 IN PTR hq-rtr.au-team.irpo.
    Проверить и перезагрузить:

    named-checkconf
    named-checkzone au-team.irpo /etc/bind/db.au-team.irpo
    named-checkzone 168.192.in-addr.arpa /etc/bind/db.168.192
    systemctl restart bind9

    Ответить

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