Можливі два моменти відмови:
- чи працює підключення TCP / UDP до сервера DNS?
- чи налаштована бібліотека С для використання DNS в першу чергу, і якщо так, за допомогою якої бібліотеки роздільної здатності?
Перший пункт можна перевірити за допомогою будь-якої з команд, запропонованих раніше:
host www.google.es 8.8.8.8
nslookup www.google.es 8.8.8.8
dig +short www.google.es @8.8.8.8
Оскільки DNS-сервер може успішно проводити пінг, ми знаємо, що маршрутизація IP працює, і трафік ICMP дозволений - але він нічого не говорить про трафік DNS, тобто про трафік TCP та UDP до порту 53. Брандмауер може блокувати це, не блокуючи ICMP, або пороку навпаки.
Для другого можливого пункту відмови запустіть:
grep hosts /etc/nsswitch.conf
Якщо відповідь не містить ключових слів dns
, resolve
також lwres
, тоді роздільна здатність імені хоста в цій машині VM налаштована взагалі не використовувати DNS - ключові слова вказуватимуть, які методи фактично будуть використовуватися.
dns
- це класичний DNS-роздільник, налаштований через /etc/resolv.conf
lwres
є libnss-lwres
: якщо ви виявите це, також переконайтеся, що lwresd
процес запущений і він не налаштований для використання спеціального файлу конфігурації замість типового/etc/resolv.conf
resolve
вказує libnss-resolve
: якщо ви виявите це, переконайтеся, що systemd-resolved
процес запущений, і використовуйте systemd-resolve --status
команду для перегляду поточної конфігурації DNS. У цьому випадку класика /etc/resolv.conf
може не обов'язково використовуватися взагалі, крім того, щоб направляти додатки, які використовують власні бібліотеки DNS-рішень для надсилання запитів systemd-resolved
.
Щоб перевірити, чи може програма успішно використовувати будь-яку бібліотеку роздільної здатності імені хоста, налаштована, використовуйте getent hosts www.google.es
. Якщо ви думаєте, що програма використовує лише IPv4 або вказує перевагу для IPv4, ви також можете протестувати getent ahostsv4 www.google.es
. Так само для тестування спеціально лише для IPv6 ви можете використовувати getent ahostsv6 www.google.es
.
sudo dhclient -v wlan0
(замінити wlan0 для вашого інтерфейсу)? Іdig google.com
?