Nslookup là một chương trình truy vấn các máy chủ tên miền Internet . Nslookup rất tốt để truy vấn các máy chủ DNS nhưng nó không cung cấp cho bạn toàn bộ hình ảnh khi nói đến độ phân giải tên.
Trên Linux, độ phân giải tên thường được kiểm soát bởi NSS được cấu hình bởi /etc/nsswitch.conf
. Cụ thể, cấu hình này chứa một hosts
mục. Ví dụ:
hosts: files dns
Trong mục trên, bạn có thể thấy rằng điều đầu tiên được truy vấn được files
theo sau dns
, có nghĩa là /etc/hosts
sẽ được truy vấn trước DNS. Các tùy chọn khác tồn tại bao gồm LDAP , Multicast DNS và WINS .
Trả lời trực tiếp câu hỏi của bạn, SSH giải quyết tên máy chủ thành địa chỉ IP bằng NSS (lấy kết quả từ nhiều nguồn) trong đó nslookup chỉ truy vấn DNS.
Bạn có thể kiểm tra xem IP NSS nào phân giải tên máy chủ để sử dụng getent. Ví dụ để giải quyết somename
:
getent hosts somename
Ngoài ra, trong trường hợp SSH, bạn có thể định cấu hình lưu trữ thông tin cụ thể trong /etc/ssh/ssh_config
và ~/.ssh/config
. Điều này thậm chí sẽ cho phép bạn chỉ định một địa chỉ IP cho tên máy chủ, hoàn toàn bỏ qua độ phân giải tên.:
Phần sau đây cho SSH sử dụng 192.168.1.25
cho cả hai dev
và dev.example.com
. SSH sẽ sử dụng địa chỉ này cho dù các tên này có tồn tại dưới dạng tên DNS cho một IP khác hay không:
# contents of $HOME/.ssh/config
Host dev dev.example.com
HostName 192.168.1.25
/etc/hosts
hoặc~/.ssh/config
?