Итак, сегодня мы поговорим с вами о настройке 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 завершена. Достаточно легко и просто, а главное, что все работает.
В листинге указываете одни сервера:
servername 8.8.8.8
servername 8.8.4.4
На скриншоте и при проверке resolv.conf другие: servername 10.10.8.8 и servername 10.10.10.10
Правая рука не знает, что делает левая?
А собственный ник слабо придумать? Одни плагиаторы вокруг, тьфу
Убунта стаил. Дебиан слава богу по дефолту не испортил resolv.conf.
Посмотрите ваши скриншоты, правильно nameserver, а не servername
А им пофиг, как правильно. Им главно, чтобы поисковики проиндексировали. И на юнната, который сдуру воспользуется этой писаниной как инструкцией и потом поимеет проблемы, им тоже наплевать. Это же losst - только вредные советы и кривые инструкции.
А вот не надо так грубо, все допускают ошибки и ничего в этом страшного нет. Посмотрите другие мои статьи для более объективного взгляда.
Интересно, вы так же реагируете на свои ошибки?
Ути, слатенькое какое. В приличном обществе не прилично выставлять напоказ свои ошибки, поэтому добросовестные пейсатели обычно, перед тем как опубликовать, тщательно проверяют свою писанину. Другие ваши статьи смотрел, они чудовищны и никчёмны. Вас стоит слушать и молчать, слушать и молчать, слушать и молчать. Слушать внимательно. Может тогда вы хоть чему-нибудь научитесь
В тексте уже исправил, новых снимков пока нет.
Вообще пропала связь с интернетом, хотя служба запустилась но не прописалась в cat /etc/resolv.conf
Debian LXDE
Спасибо. Статья помогла. Пользовался до этого костылём
Статья бред. В резолве белым по черному написано. Сгенерировано автоматический.
Предполагаю, что у вас заблокированы Google DNS провайдером. Использовал в такой ситуации яндекс днс 77.88.8.8 -заработало отлично.
угу, отличная статья, только вот что делать если изза днс он даже обновиться не может?
"Как вы поняли, с помощью sudo systemctl start resolvconf.service и sudo systemctl enable resolvconf.service мы запускаем службу"
enable не запускает службу, а добавляет её в автозагрузки.
Нормально, только вот сервера DNS обновляются автоматически в этом файле, бесполезная статья к сожалению.
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)
так два раза делай и спина не будет болет 🙂