1

добавлена запись в /etc /hosts

 127.0.0.1    testjd.com

могу пинговать нормально

ping testjd.com

PING test.com (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.100 ms

но nslookup (и apache2 config) не может разрешить новое имя ...

nslookup testjd.com
;; connection timed out; no servers could be reached

sudo /etc/init.d/apache2 reload
[error] (EAI 2)Name or service not known: Could not resolve host name > -- ignoring!

примечание: cat /etc/host.conf

order hosts,bind
multi on

В конечном итоге я хочу, чтобы моя конфигурация apache2 была способна разрешить новое локальное имя (примечание: я настроил виртуальный хост для testjd.com, но я не могу обойти проблему "разрешения имени хоста", показанную выше)

Благодарю.

2 ответа2

3

Это потому, что команда nslookup работает с DNS, и ваш DNS не может найти testjd.com. Вместо этого вы можете использовать команду host , которая будет взаимодействовать с вашим файлом hosts.

john@awesome:~$ host localhost
localhost has address 127.0.0.1
localhost has IPv6 address ::1
0

Чтобы использовать файл hosts и DNS-сервер, используйте getent . Например:

getent ahosts <hostname>


Заметки:

  • Как ответил Джон Т, nslookup будет использовать DNS-сервер, а файл /etc/hosts не является DNS-сервером
  • Конфигурацию DNS можно найти в /etc/resolv.conf
  • Службу имен (включая файл hosts ) можно найти по адресу /etc/nsswitch.conf

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .