Итак, сегодня мы поговорим с вами о настройке DNS в Debian. Тем, кто «в теме», не потребуются объяснения, но для остальных пройдемся от малого. Что такое DNS? Это компьютерная распределенная система для получения информации о доменах. Она используется для получения IP-адреса той самой уютной ЖЖшки, или ВК. Нужна она прежде всего для человека, так как нам, как ни странно, будет проще запомнить адрес в буквенном формате, чем в числовом. Но это не единственный плюс.
Раньше сеть была гораздо меньше нынешней и на каждой машине находился файл hosts, его рассылали автоматически и «централизованно». Он отвечал за преобразование между доменными и IP-адресами, но сеть непрерывно росла, а данный метод уже явно не справлялся с поставленными задачами. Вот здесь и выходит на сцену механизм, способный делать все то же самое и в больших объемах — DNS. С основными определениями разобрались, теперь перейдем к сути статьи.
Настройка DNS в Debian
Сперва мы ознакомимся с файлом /etc/resolv.conf. Это — это основной файл настройки библиотеки распознавателя имен DNS. Распознаватель — это библиотека на языке Cи, именно она обеспечивает доступ к 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
Прекрасно, следующим шагом будет внесение данных в этот файл. Вписываем в него следующие строки так, как это показано на скриншоте:
Сохраняем изменения с помощью 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 завершена. Достаточно легко и просто, а главное, что все работает.