Як знайти IP-адресу DNS-сервера в Linux?

DNS — один із базових елементів роботи мережі. Саме він перетворює назви сайтів на IP-адреси, зрозумілі комп’ютеру. Завдяки цьому ми вводимо у браузері google.com замість довгих числових комбінацій.

Іноді виникає потреба перевірити, який саме DNS-сервер використовує система. Наприклад, якщо деякі сайти не відкриваються, інтернет працює повільно або потрібно протестувати мережеві налаштування. У Linux це можна зробити кількома простими способами — від перегляду конфігураційних файлів до використання системних утиліт.

Що таке DNS-сервер і чому важливо знати його адресу?

DNS (Domain Name System) — це система, яка перетворює зрозумілі людині доменні імена: наприклад з itedu.center на IP-адреси серверів. Кожного разу, коли відкриваєш вебсайт, комп’ютер звертається до DNS-сервера, щоб дізнатися, де саме розташований потрібний ресурс.

Якщо DNS працює некоректно, система просто не може знайти шлях до сайту — і сторінка не завантажується. Тому перевірка DNS важлива не лише для системних адміністраторів, а й для звичайних користувачів.

Знати, який DNS-сервер використовується, потрібно для:

  • діагностики проблем із доступом до сайтів;
  • перевірки, чи застосовується публічний або корпоративний DNS;
  • впевненості, що налаштування відповідають політикам безпеки;
  • тестування продуктивності мережі.

Перевірка через файл /etc/resolv.conf

Файл /etc/resolv.conf — це своєрідна адресна книга системи. У ньому записано, які DNS-сервери Linux використовує для перетворення доменних імен на IP-адреси.

  • Щоб переглянути його вміст, відкрий термінал і введи команду:
cat /etc/resolv.conf
  • У результаті побачиш щось на кшталт:

nameserver 8.8.8.8

nameserver 1.1.1.1

Кожен рядок із nameserver означає адресу DNS-сервера. Це може бути як публічний DNS (наприклад, Google або Cloudflare), так і локальний твого роутера, наприклад 192.168.0.1.

Файл /etc/resolv.conf — перше місце, куди звертається система під час пошуку IP-адреси сайту. Якщо він порожній або не існує, ймовірно, конфігурацією DNS керує інший сервіс — systemd-resolved або NetworkManager.

Перевірка через resolvectl

У більшості сучасних дистрибутивів (Ubuntu, Fedora, Debian, Rocky Linux) за роботу DNS відповідає systemd-resolved. Щоб переглянути DNS-сервери, які використовує система, виконай команду:

resolvectl status | grep "DNS"

Вона виведе інформацію про поточне мережеве підключення. Приклад результату:

DNS Servers: 192.168.0.1 8.8.8.8

Перший запис зазвичай вказує на локальний шлюз або маршрутизатор, а другий — на зовнішній публічний DNS.

Якщо команда resolvectl не знайдена, система, ймовірно, не використовує systemd або ця утиліта не встановлена. У такому випадку можна перейти до наступного способу.

Перевірка через NetworkManager

На більшості систем Linux за налаштування мережі відповідає NetworkManager. Для перегляду DNS-серверів скористайся командою:

nmcli dev show | grep 'IP4.DNS'

Вивід виглядатиме приблизно так:

IP4.DNS[1]: 192.168.0.1

IP4.DNS[2]: 8.8.8.8

Тут відображаються адреси DNS-серверів, до яких звертається система. Якщо є кілька записів, вони використовуються послідовно — спочатку перший, потім другий, якщо перший недоступний.

nmcli зручно застосовувати у середовищах, де кілька мережевих інтерфейсів, або коли потрібно швидко перевірити конфігурацію без відкриття графічних налаштувань.

Використання утиліт dig або nslookup

Команди dig і nslookup дозволяють дізнатися не лише адресу DNS, а й перевірити, чи він взагалі працює.

  • Виконай:
dig google.com
  • Наприкінці результату знайди рядок:

;; SERVER: 192.168.0.1#53(192.168.0.1)

Це і є IP-адреса DNS-сервера, який обробив твій запит.

  • Аналогічно працює nslookup:
nslookup google.com
  • У результаті побачиш:

Server: 192.168.0.1

Address: 192.168.0.1#53

Server: 192.168.0.1

Address: 192.168.0.1#53

Якщо у відповіді вказано публічну адресу, наприклад 8.8.8.8, це означає, що система звертається до зовнішнього DNS. А якщо бачиш локальну адресу на кшталт 192.168.x.x — запит обробляє твій роутер або внутрішній сервер.

Як перевірити DNS-сервер певного сайту?

Іноді потрібно з’ясувати, які саме сервери обслуговують конкретний домен. Це корисно під час налаштування корпоративних або хмарних ресурсів.

Для цього використай:

dig example.com

У секції ANSWER SECTION відобразяться IP-адреси, на які вказує домен, а у полі SERVER — DNS, що відповів на запит. 

Якщо DNS-сервер не працює?

Якщо з’єднання нестабільне або сайти не відкриваються, перевір DNS за такою схемою:

1. Переглянь файл /etc/resolv.conf і впевнись, що там зазначені коректні адреси.

2. Виконай тестовий запит:

nslookup google.com

Якщо у відповідь з’являється IP-адреса, DNS працює.

3. Якщо ні — спробуй тимчасово використати публічні сервери:

dig @8.8.8.8 google.com
dig @1.1.1.1 google.com

Якщо після цього сайт відкривається, проблема у локальному або провайдерському DNS.

Рекомендації для стабільної роботи DNS-сервера

  • Використовуй перевірені DNS-сервери: Google (8.8.8.8, 8.8.4.4) або Cloudflare (1.1.1.1, 1.0.0.1).
  • Не редагуй /etc/resolv.conf вручну, якщо система оновлює його автоматично.
  • Для корпоративних систем варто використовувати внутрішні DNS-сервери для контролю безпеки.
  • Регулярно перевіряй, чи не змінилися налаштування після оновлення мережі або системи.
  • За можливості активуй DNS over HTTPS (DoH) — це забезпечить шифрування запитів.

Підсумок

Знати, який DNS-сервер використовує система, означає розуміти, як саме працює твоя мережа. Це допомагає швидше знаходити проблеми, налаштовувати середовище без простоїв і впевнено керувати підключеннями.

Кілька хвилин, витрачених на перевірку DNS, можуть зекономити години пошуку причини, чому не відкривається сайт або не працює застосунок. Linux дає для цього всі інструменти — головне знати, де шукати і яку команду запустити.

Хочеш розуміти DNS настільки добре, щоб розказати про нього навіть тоді, коли тебе розбудять вночі? Курс «Вебсервери на Linux» від ITEDU допоможе розкласти все по поличках і впевнено працювати з налаштуваннями.

Залишити відповідь

Дякуємо, що поділились