Як вирішити помилку вирішення DNS на сервері Linux?
Покроковий посібник щодо тимчасових збоїв у розпізнаванні імен, збоїв у розпізнаванні домену та помилок apt update DNS.
Хоча здається, що сервери Linux мають підключення до Інтернету, доменні адреси можуть не розпізнаватися. У цьому випадку сервер може отримати доступ до IP-адрес, але google.com, debian.org, ubuntu.com або служби ліцензії/API.
Ця проблема особливо проявляється в таких процесах:
- вдале оновлення або yum оновлення Помилка отримана під час
- Ліцензія WHMCS, посилання на оплату чи API не працюють
- Ігрова панель не може підключитися до віддалених адрес API
- Пінг домену не працює, коли на сервері запущено ping IP
- Тимчасовий збій у розпізнаванні імен виявлено помилку
1. Розуміння того, чи дійсно проблема DNS
Спочатку перевірте загальнодоступний доступ сервера до Інтернету, виконавши команду ping на його IP-адресу.
ping -c 4 8.8.8.8
Якщо ця команда відповідає, сервер має доступ до Інтернету на рівні IP. Тепер протестуйте дозвіл домену:
ping -c 4 google.com
Якщо перевірка IP-адреси працює, але перевірка домену не працює, швидше за все, проблема на стороні DNS.
2. Перевірка поточних налаштувань DNS
У системах Linux DNS-сервери зазвичай є /etc/resolv.conf визначається у файлі.
cat /etc/resolv.conf
Правильне налаштування DNS зазвичай виглядає так:
nameserver 1.1.1.1 nameserver 8.8.8.8
Якщо файл порожній, містить неправильні IP-адреси або записує лише локальні/непрацюючі DNS-адреси, розпізнавання домену може не відбутися.
3. Тимчасове визначення DNS
Для швидкого тестування ви можете визначити тимчасовий DNS за допомогою такої команди:
echo "nameserver 1.1.1.1" > /etc/resolv.conf echo "nameserver 8.8.8.8" >> /etc/resolv.conf
Перевірте пізніше:
ping -c 4 google.com
4. Постійне налаштування DNS у системах Ubuntu / Debian
У сучасних системах Ubuntu мережеві налаштування зазвичай такі netplan Ним керує . Список файлів Netplan:
ls /etc/netplan/
Відредагуйте файл:
nano /etc/netplan/01-netcfg.yaml
Приклад визначення DNS:
network:
version: 2
ethernets:
eth0:
dhcp4: true
nameservers:
addresses:
- 1.1.1.1
- 8.8.8.8Щоб застосувати налаштування:
netplan apply
Якщо ви підключені через SSH і не впевнені в налаштуваннях мережі, будьте обережні. Неправильні налаштування мережевого плану можуть порушити ваше з’єднання SSH.
5. Налаштування DNS CentOS / AlmaLinux / Rocky Linux
У системах на основі RedHat налаштування DNS можна виконати через NetworkManager.
Щоб побачити назву активного підключення:
nmcli con show
Приклад налаштування DNS:
nmcli con mod "System eth0" ipv4.dns "1.1.1.1 8.8.8.8" nmcli con up "System eth0"
Назва підключення може бути іншою. Ви повинні використовувати власне ім'я підключення в команді.
6. Systemd-resolved Перевірка
Розділення DNS на деяких системах systemd-рішено Ним керує служба.
systemctl status systemd-resolved
Якщо служба не працює, її можна запустити:
systemctl enable systemd-resolved systemctl start systemd-resolved
Щоб переглянути статус DNS:
resolvectl status
7. Перевірка DNS на наявність помилок оновлення пакетів
Якщо DNS пошкоджено, менеджери пакетів також не працюватимуть. Наприклад, можуть виникнути такі помилки:
Temporary failure resolving 'archive.ubuntu.com' Could not resolve host Name or service not known
У цьому випадку сховище пакетів не слід вважати пошкодженим. Спочатку слід перевірити роздільність DNS.
Поширені помилки
- Думаючи, що немає Інтернету, але не розуміючи, що насправді пошкоджено лише DNS
- Записати тимчасовий DNS у файл /etc/resolv.conf і вважати, що це постійне рішення
- Неправильний відступ у файлі Netplan
- Орфографічна помилка імені підключення NetworkManager
- Думаючи, що робочий API або система ліцензування несправна через проблему DNS
FAQ
IP ping працює, але ping домену не працює, у чому проблема?
Швидше за все, проблема вирішення DNS. Сервер може отримати доступ до Інтернету, але не може перетворити доменні імена в IP-адреси.
Які DNS-сервери я можу використовувати?
Загальнодоступними є версії 1.1.1.1, 1.0.0.1, 8.8.8.8 і 8.8.4.4. У корпоративних структурах можна віддати перевагу приватному DNS-серверу.
Чому resolv.conf змінюється сам по собі?
Оскільки файлом автоматично керує netplan, NetworkManager або systemd-resolved у більшості систем.
Рекомендації з техніки безпеки та експлуатації
- Обов’язково виконайте перевірку дозволу домену після зміни DNS.
- Додайте помилки DNS у системах оплати, ліцензування та API до першого контрольного списку.
- Визначте принаймні дві адреси DNS замість однієї DNS.
- Якщо ваш постачальник серверів надає приватний DNS, також врахуйте це.
- Зауважте, що неправильне налаштування netplan може порушити з’єднання SSH.
Ця стаття спеціально підготовлена для PvPServer.