Как проверить, настроен ли DNS - сервер в Linux

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом лабораторном занятии (LabEx) вы узнаете, как проверить, настроен ли DNS - сервер на вашей системе Linux. Мы рассмотрим основной файл конфигурации /etc/resolv.conf, чтобы определить настроенные DNS - серверы.

После этого вы будете использовать команду nslookup для проверки разрешения DNS и убедитесь, что ваша система может успешно преобразовывать доменные имена в IP - адреса. Наконец, мы проверим файл конфигурации systemd-resolved /etc/systemd/resolved.conf, чтобы понять, как настроена локальная служба разрешения DNS.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/RemoteAccessandNetworkingGroup -.-> linux/netstat("Network Monitoring") linux/RemoteAccessandNetworkingGroup -.-> linux/ping("Network Testing") linux/RemoteAccessandNetworkingGroup -.-> linux/ip("IP Managing") subgraph Lab Skills linux/cat -.-> lab-558709{{"Как проверить, настроен ли DNS - сервер в Linux"}} linux/netstat -.-> lab-558709{{"Как проверить, настроен ли DNS - сервер в Linux"}} linux/ping -.-> lab-558709{{"Как проверить, настроен ли DNS - сервер в Linux"}} linux/ip -.-> lab-558709{{"Как проверить, настроен ли DNS - сервер в Linux"}} end

Проверка DNS с помощью команды cat /etc/resolv.conf

На этом этапе мы начнем с рассмотрения того, как ваша система Linux находит веб - сайты и сервисы в интернете. Этот процесс называется разрешением DNS, и он обрабатывается службой, которая преобразует человекочитаемые доменные имена (например, google.com) в компьютерные IP - адреса (например, 172.217.160.142).

Основной файл конфигурации для разрешения DNS на многих системах Linux - это /etc/resolv.conf. Этот файл сообщает вашей системе, какие DNS - серверы использовать.

Давайте посмотрим на содержимое этого файла с помощью команды cat. Команда cat - это простой, но мощный инструмент, используемый для отображения содержимого файлов.

Откройте терминал, если он еще не открыт. Вы можете найти значок Xfce Terminal слева на рабочем столе.

Теперь введите следующую команду и нажмите Enter:

cat /etc/resolv.conf

Вы должны увидеть вывод, похожий на следующий:

## This is /run/systemd/resolve/stub-resolv.conf.
## Handled by systemd-resolved(8).
## DNS servers configured in /etc/systemd/resolved.conf.
nameserver 127.0.0.53
options edns0 trust-ad

Разберем вывод:

  • Строки, начинающиеся с #, являются комментариями и игнорируются системой.
  • nameserver 127.0.0.53: Эта строка является самой важной здесь. Она указывает IP - адрес DNS - сервера, который будет использоваться вашей системой. В данном случае 127.0.0.53 - это специальный IP - адрес, который указывает на локальную службу разрешения DNS, часто systemd-resolved, о которой мы поговорим позже. Эта локальная служба разрешения затем пересылает ваши запросы DNS на внешние DNS - серверы.
  • options edns0 trust-ad: Это параметры, связанные с запросами DNS. edns0 - это механизм расширения для DNS, а trust-ad связан с DNSSEC (DNS Security Extensions). Не нужно сейчас беспокоиться о этих параметрах.

Понимание файла /etc/resolv.conf является первым шагом в устранении неполадок с сетевым подключением, связанных с DNS. Если этот файл отсутствует или содержит неверную информацию, ваша система может не уметь разрешать доменные имена.

Нажмите Продолжить, чтобы перейти к следующему шагу.

Тестирование разрешения DNS с помощью команды nslookup

На предыдущем этапе мы рассмотрели файл /etc/resolv.conf, который сообщает вашей системе, где найти DNS - серверы. Теперь давайте активно проверим, может ли ваша система разрешить доменное имя с помощью команды nslookup.

nslookup - это утилита командной строки для запроса системы доменных имен (Domain Name System, DNS) для получения сопоставления доменного имени и IP - адреса или любых других конкретных записей DNS. Это фундаментальный инструмент для устранения неполадок в сети.

Давайте используем nslookup для нахождения IP - адреса для example.com. Введите следующую команду в терминале и нажмите Enter:

nslookup example.com

Вы должны увидеть вывод, похожий на следующий:

Server:		127.0.0.53
Address:	127.0.0.53#53

Non-authoritative answer:
Name:	example.com
Address: 93.184.216.34

Разберем этот вывод:

  • Server: 127.0.0.53: Здесь показан IP - адрес DNS - сервера, который nslookup использовал для запроса. Как мы видели на предыдущем этапе, это локальный сервер разрешения, указанный в /etc/resolv.conf.
  • Address: 127.0.0.53#53: Это IP - адрес и номер порта DNS - сервера. DNS обычно использует порт 53.
  • Non-authoritative answer:: Это означает, что ответ получен от кэширующего DNS - сервера, а не от авторитетного сервера для example.com.
  • Name: example.com: Это доменное имя, которое вы запросили.
  • Address: 93.184.216.34: Это IP - адрес, который DNS - сервер вернул для example.com. Это адрес, к которому ваше компьютер будет подключаться, когда вы попытаетесь посетить example.com.

Если nslookup возвращает IP - адрес, это означает, что ваша система успешно разрешила доменное имя. Если это не удается, вы, возможно, увидите сообщение об ошибке, указывающее на проблему с разрешением DNS.

Вы также можете попробовать разрешить другие доменные имена, например, google.com или labex.io.

nslookup google.com

Вывод покажет IP - адреса, связанные с google.com. Обратите внимание, что одно доменное имя может иметь несколько IP - адресов.

Эта команда очень полезна для проверки правильности настройки DNS и для нахождения IP - адресов конкретных доменных имен.

Нажмите Продолжить, чтобы перейти к следующему шагу.

Проверка конфигурации resolved с помощью команды cat /etc/systemd/resolved.conf

На предыдущих этапах мы увидели, что /etc/resolv.conf часто указывает на локальный адрес (127.0.0.53), который обрабатывается службой systemd-resolved. Эта служба является частью системы и менеджера служб systemd и обеспечивает разрешение сетевых имен для локальных приложений.

Конфигурация для systemd-resolved обычно находится в файле /etc/systemd/resolved.conf. Давайте проверим этот файл, чтобы увидеть, как настроен локальный сервер разрешения.

Снова используйте команду cat для просмотра содержимого файла /etc/systemd/resolved.conf. Введите следующую команду в терминале и нажмите Enter:

cat /etc/systemd/resolved.conf

Вы должны увидеть вывод, похожий на следующий:

##  This file is part of systemd.
#
##  systemd is free software; you can redistribute it and/or modify it
##  under the terms of the GNU Lesser General Public License as published by
##  the Free Software Foundation; either version 2.1 of the License, or
##  (at your option) any later version.
#
## Entries in this file show the compile time defaults. Local configuration
## should be placed in a file located in /etc/systemd/resolved.conf.d/.
## See resolved.conf(5) for details.

[Resolve]
#DNS=
#FallbackDNS=
#Domains=
#DNSSEC=no
#DNSOverTLS=no
#MulticastDNS=yes
#LLMNR=yes
#Cache=yes
#DNSStubListener=yes
#ReadEtcHosts=yes

Рассмотрим ключевые части этого файла:

  • Файл начинается с комментариев, объясняющих его назначение и лицензирование.
  • [Resolve]: Это отмечает начало основного раздела конфигурации для разрешения имен.
  • DNS=: Эта закомментированная строка - место, где обычно перечисляются IP - адреса верхнеуровневых DNS - серверов, которые должен использовать systemd-resolved. Поскольку строка закомментирована, systemd-resolved, вероятно, получает информацию о DNS - серверах из другого источника, например, из сетевой конфигурации (например, DHCP).
  • FallbackDNS=: Эта закомментированная строка позволяет указать резервные DNS - серверы, которые будут использоваться, если основные, перечисленные в DNS=, недоступны.
  • Другие закомментированные параметры контролируют различные аспекты поведения systemd-resolved, такие как проверка DNSSEC, DNS over TLS, кэширование и поддержка Multicast DNS (mDNS) и Link - Local Multicast Name Resolution (LLMNR).

В этой среде фактические DNS - серверы, которые используются, вероятно, предоставляются базовой сетевой инфраструктурой (среда Docker - контейнера). systemd-resolved действует как локальный кэш и переадресовщик.

Понимание файла /etc/systemd/resolved.conf важно для продвинутой настройки и устранения неполадок с DNS на системах, использующих systemd-resolved.

Вы успешно проверили основные файлы конфигурации, связанные с разрешением DNS на этой системе Linux.

Нажмите Продолжить, чтобы завершить этот практический урок.

Резюме

В этом практическом уроке мы научились проверять конфигурацию DNS - серверов на системе Linux. Мы начали с изучения файла /etc/resolv.conf с помощью команды cat. Этот файл является основным конфигурационным файлом, в котором указываются DNS - серверы, используемые системой. Мы поняли, что строки, начинающиеся с #, являются комментариями, а строка nameserver указывает IP - адрес DNS - сервера, часто это локальный сервер разрешения, такой как 127.0.0.53, который обрабатывается службой systemd-resolved.

Затем мы проверили разрешение DNS с помощью команды nslookup, чтобы убедиться, что настроенный DNS - сервер может успешно преобразовать доменные имена в IP - адреса. Наконец, мы проверили конфигурацию службы systemd-resolved, просмотрев файл /etc/systemd/resolved.conf с помощью команды cat. Этот файл содержит дополнительные сведения о том, как настроен локальный DNS - сервер разрешения и как он переадресует запросы на внешние DNS - серверы. Эти шаги дают фундаментальное понимание того, как настраивается и тестируется DNS на Linux.