Linux Server Deployment & SSH Mastery · Урок

Настройка DNS и устранение неполадок

Поймите, как серверы Linux сопоставляют имена узлов с IP-адресами: настройте преобразователи, отредактируйте /etc/hosts и используйте dig, nslookup и host для диагностики проблем DNS, нарушающих подключение даже при исправной сети.

Урок 4 из 413 шагов

«Настройка 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 — адрес IPv4
  • AAAA — адрес IPv6
  • MX — почтовые серверы
  • NS — серверы имён
  • CNAME — псевдоним
dig example.com MX +short
dig example.com NS +short

nslookup и 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 — локальная установка не требуется.

Все уроки этого курса

  1. Основы настройки сети
  2. Принципы работы межсетевых экранов (UFW/firewalld)
  3. Управление портами и безопасность
  4. Настройка DNS и устранение неполадок
← Назад к Linux Server Deployment & SSH Mastery