Nslookup - програма для запиту серверів доменних імен Інтернету . Nslookup дуже хороший для запитів DNS-серверів, але він не дає вам всієї картини, коли справа стосується дозволу імен.
Роздільна здатність імен Linux найчастіше контролюється NSS, який налаштовано /etc/nsswitch.conf
. Зокрема, ця конфігурація містить hosts
запис. Наприклад:
hosts: files dns
У вищевказаному записі ви бачите, що перше, на що слід запитувати, files
слідує dns
, тобто це /etc/hosts
буде запит перед DNS. Існують і інші варіанти, включаючи LDAP , багатоадресу DNS та WINS .
Відповідаючи безпосередньо на ваше запитання, SSH вирішує ім'я хоста до IP-адреси за допомогою NSS (витягуючи результати з декількох джерел), де nslookup запитує лише DNS.
Ви можете перевірити, який IP NSS вирішує ім'я хоста за допомогою getent. Наприклад, щоб вирішити somename
:
getent hosts somename
Також у випадку SSH ви можете налаштувати конкретну інформацію про хост у /etc/ssh/ssh_config
та ~/.ssh/config
. Це навіть дозволить вам вказати IP-адресу для імені хоста, повністю пропускаючи роздільну здатність імені.
Далі вказується SSH використовувати 192.168.1.25
як для, так dev
і для dev.example.com
. SSH використовуватиме цю адресу незалежно від того, існують ці імена як імена DNS для іншого IP:
# contents of $HOME/.ssh/config
Host dev dev.example.com
HostName 192.168.1.25
/etc/hosts
чи~/.ssh/config
?