Kali Linux всередині VMWare використовує NAT: DNS не вирішує імена


1

У мене встановлена ​​Kali Linux на робочій станції VMWare. Віртуальні машини налаштовані для використання NAT. Хост-сервер - це Windows 8.1.

DNS в Калі не працює:

$ ping -c1 www.google.es
ping: unknown host www.google.es

Мережа працює:

$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=128 time=32.0 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=128 time=25.0 ms

Налаштовані DNS-адреси:

$ cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.8.9

Будь-яка ідея?


2
Що говорить sudo dhclient -v wlan0(замінити wlan0 для вашого інтерфейсу)? І dig google.com?
agtoever

Відповіді:


1

Можливі два моменти відмови:

  • чи працює підключення 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.


0

Спробуйте використовувати хост або nslookup і змусити його запитати спеціальний сервер

$ host www.google.es 8.8.8.8
$ nslookup www.google.es 8.8.8.8

0

Або викопайте www.google.es @ 8.8.8.8 Спробуйте й інші імена хостів.

Можливо, знадобиться перевірити, чи відкрито порт DNS 53 (здебільшого UDP, але також і TCP)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.