Настройка DNS и устранение неполадок
Поймите, как серверы Linux сопоставляют имена узлов с IP-адресами: настройте преобразователи, отредактируйте /etc/hosts и используйте dig, nslookup и host для диагностики проблем DNS, нарушающих подключение даже при исправной сети.
«Настройка DNS и устранение неполадок» — бесплатный урок Linux Server Deployment & SSH Mastery на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Linux Server Deployment & SSH Mastery, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Linux Server Deployment & SSH Mastery содержит 4 уроков всего.
Почему DNS важен на сервере
На сервере могут быть идеально настроены сеть и брандмауэр, но он всё равно не сможет выйти во внешний мир, если не умеет разрешать имена. DNS преобразует понятные человеку имена узлов, например example.com, в IP-адреса.
Знание принципов разрешения имён и способов поиска неполадок в нём — важный сетевой навык.
Путь разрешения имён
Когда программе нужен IP-адрес для имени, Linux обычно проверяет источники по порядку:
- Локальный файл
/etc/hosts - Настроенные DNS-серверы (распознаватели)
Порядок определяется в /etc/nsswitch.conf, в строке hosts:.
grep hosts /etc/nsswitch.conf
# hosts: files dnsФайл /etc/hosts
/etc/hosts локально сопоставляет имена с IP-адресами, обходя DNS. Он отлично подходит для проверки, внутренних имён узлов или привязки домена к определённому IP-адресу.
Каждая строка содержит IP-адрес, за которым следуют одно или несколько имён.
127.0.0.1 localhost
192.168.1.50 db.internal dbГде настраиваются распознаватели
Классический файл — /etc/resolv.conf, в котором перечислены серверы имён. В современных системах им часто управляют systemd-resolved или NetworkManager, поэтому прямое редактирование может не сохраниться.
Перед изменениями проверьте, какие настройки действительно используются.
cat /etc/resolv.conf
resolvectl statusНастройка DNS-сервера
В системе с systemd-resolved настраивайте DNS для каждого интерфейса, а не редактируйте resolv.conf. На серверах с Netplan укажите настройки в конфигурации YAML.
В этом примере для интерфейса задаются общедоступные распознаватели.
sudo resolvectl dns eth0 1.1.1.1 8.8.8.8
resolvectl dns eth0Поиск записей с помощью dig
dig — самый мощный инструмент для DNS-запросов. Он показывает ответ и метаданные запроса.
Параметр +short оставляет только ответ — это идеально подходит для сценариев.
dig example.com
dig +short example.comЗапрос записей определённого типа
DNS хранит записи разных типов. Укажите тип, чтобы проверить почту, серверы имён или псевдонимы.
A— адрес IPv4AAAA— адрес IPv6MX— почтовые серверыNS— серверы имёнCNAME— псевдоним
dig example.com MX +short
dig example.com NS +shortnslookup и host
nslookup и host — более простые альтернативы dig. Они удобны для быстрой проверки и обратного поиска (IP-адреса по имени).
При обратном поиске запрашивается запись PTR для адреса.
host example.com
nslookup example.com
dig -x 8.8.8.8 +shortЗапрос к определённому серверу
Чтобы проверить, не является ли причиной один из распознавателей, направьте запрос к определённому серверу с помощью синтаксиса @. Если общедоступный распознаватель работает, а Ваш — нет, проблема в конфигурации DNS.
dig @1.1.1.1 example.com +short
dig @8.8.8.8 example.com +shortПорядок поиска неполадок
Если имя не разрешается, последовательно проверьте разные уровни:
- Можете ли Вы отправить ping непосредственно на IP-адрес? (исключает проблемы сети)
- Работает ли
dig @1.1.1.1 name? (исключает проблемы с самим именем) - Работает ли
dig nameс используемым по умолчанию распознавателем? (помогает локализовать проблему в конфигурации распознавателя) - Не переопределяет ли результат устаревшая запись в
/etc/hosts?
ping -c1 1.1.1.1
dig @1.1.1.1 example.com +short
dig example.com +shortРекомендации
Обеспечьте надёжное разрешение имён:
- Используйте как минимум два распознавателя для отказоустойчивости
- Не редактируйте вручную
resolv.conf, если им управляет система автоматически - Используйте
/etc/hostsдля проверки, но удаляйте устаревшие записи - В сценариях отдавайте предпочтение
dig +shortдля получения чистого вывода
Быстрая проверка
Проверьте свои знания о поиске неполадок DNS.
Итоги
Теперь Вы умеете настраивать DNS на сервере и искать неполадки:
- Порядок разрешения имён через
/etc/nsswitch.confи/etc/hosts - Распознаватели в
resolv.conf/systemd-resolved - Запросы с помощью
dig,hostиnslookup, включая определённые типы записей и серверы - Многоуровневый порядок поиска неполадок
Это дополняет Ваши навыки работы с сетью и брандмауэром уровнем разрешения имён.
Изучай Linux Server Deployment & SSH Mastery с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 12
- Уроки
- 48
Часто задаваемые вопросы
Урок «Настройка DNS и устранение неполадок» бесплатный?
Да — полный текст урока «Настройка DNS и устранение неполадок» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Linux Server Deployment & SSH Mastery, подпишись на CoddyKit PRO. Курс Linux Server Deployment & SSH Mastery содержит 4 уроков всего.
Чему я научусь в уроке «Настройка DNS и устранение неполадок»?
Поймите, как серверы Linux сопоставляют имена узлов с IP-адресами: настройте преобразователи, отредактируйте /etc/hosts и используйте dig, nslookup и host для диагностики проблем DNS, нарушающих подк… Ты практикуешь Linux Server Deployment & SSH Mastery с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Linux Server Deployment & SSH Mastery?
Предыдущий опыт не требуется. Linux Server Deployment & SSH Mastery на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Настройка DNS и устранение неполадок»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Linux Server Deployment & SSH Mastery?
Да. Каждый урок Linux Server Deployment & SSH Mastery включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Основы настройки сети
- Принципы работы межсетевых экранов (UFW/firewalld)
- Управление портами и безопасность
- Настройка DNS и устранение неполадок