Nslookup to program do sprawdzania serwerów nazw domen internetowych . Nslookup jest bardzo dobry do wysyłania zapytań do serwerów DNS, ale nie daje pełnego obrazu, jeśli chodzi o rozpoznawanie nazw.
W systemie Linux rozpoznawanie nazw jest najczęściej kontrolowane przez NSS, który jest konfigurowany przez /etc/nsswitch.conf
. W szczególności ta konfiguracja zawiera hosts
wpis. Na przykład:
hosts: files dns
W powyższym wpisie widać, że po pierwszym pytaniu files
następuje zapytanie dns
, co oznacza, że /etc/hosts
zostanie ono wysłane przed DNS. Istnieją inne opcje, w tym LDAP , Multicast DNS i WINS .
Odpowiadając bezpośrednio na twoje pytanie, SSH przekształca nazwę hosta na adres IP za pomocą NSS (pobieranie wyników z wielu źródeł), gdzie nslookup tylko wysyła zapytanie do DNS.
Możesz sprawdzić, który IP NSS rozpoznaje nazwę hosta za pomocą getent. Na przykład, aby rozwiązać somename
:
getent hosts somename
Również w przypadku SSH możesz skonfigurować informacje specyficzne dla hosta w /etc/ssh/ssh_config
i ~/.ssh/config
. Pozwoli to nawet określić adres IP dla nazwy hosta, całkowicie pomijając rozpoznawanie nazw .:
Następujące polecenie SSH do użycia 192.168.1.25
zarówno dla, jak dev
i dla dev.example.com
. SSH użyje tego adresu, niezależnie od tego, czy te nazwy istnieją jako nazwy DNS dla innego adresu IP:
# contents of $HOME/.ssh/config
Host dev dev.example.com
HostName 192.168.1.25
/etc/hosts
lub~/.ssh/config
?