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?