Tôi đang cố gắng kết nối từ hệ thống 10.04 đến hệ thống 12.04 thông qua SSH. Thật kỳ lạ, các quy tắc trong resolv.conf
dường như chỉ có hiệu lực chọn lọc, khiến tôi bối rối. Quan sát:
[2] user@mach:~$ ssh pangolin
ssh: Could not resolve hostname pangolin: Name or service not known
[2] user@mach:~$ host pangolin
pangolin.subdomain.domain.tld has address 172.16.7.12
subdomain.domain.tld
là trên search
dòng trong /etc/resolv.conf
và sử dụng host
tên được tìm kiếm đúng theo các quy tắc. Tuy nhiên, với máy khách SSH, ssh
tôi nhận được lỗi được sao chép ở trên. Làm sao có thể? Tôi luôn ấn tượng rằng các quy tắc phân giải tên trong resolv.conf
hệ thống toàn cầu áp dụng.
Lưu ý: /etc/hosts
không khai báo tên nào pangolin
cả. Gói openssh-server
được cấu hình trên máy đích. Câu hỏi hoàn toàn là về lý do tại sao độ phân giải tên không nhất quán giữa hai chương trình.
Một lưu ý khác: lệnh hoạt động tốt khi tôi nhập tên miền đủ điều kiện, nghĩa là pangolin.subdomain.domain.tld
.
Trong khi đó tôi khởi động lại máy khách (10.04) và vấn đề vẫn tồn tại. Một trình nền bộ nhớ đệm DNS chưa được cài đặt, vì vậy tôi cho rằng dù sao đó cũng không phải là vấn đề.
Các thông tin yêu cầu trong bình luận:
$ grep host /etc/nsswitch.conf
hosts: files dns
/etc/resolv.conf
, Tôi đã chuyển đổi tên miền một cách nhất quán:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 172.16.1.1
nameserver 172.16.1.5
search subdomain.domain1.com domain1.com domain2 domain3.com domain2.ccTLD domain3.net dev.domain1.com sdk.dev.domain1.com
... và đầy đủ /etc/nsswitch.conf
:
$ cat /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat
group: compat
shadow: compat
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
... và /etc/network/interfaces
, đó là nguồn cho resolv.conf
12.04:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 172.16.1.234
netmask 255.255.0.0
gateway 172.16.255.254
dns-nameservers 172.16.1.1 172.16.1.5
dns-search domain1.com. domain2. domain3.com. domain2.ccTLD. domain3.net. dev.domain1.com. sdk.dev.domain1.com. subdomain.domain1.com.
dns-domain subdomain.domain1.com.
Lưu ý: việc chuyển đổi tên miền đã được thực hiện sed
, do đó, nó phù hợp giữa các tệp được sao chép khác nhau.
Không có ~/.ssh/config
, nhưng đây là cái toàn cầu ( /etc/ssh/ssh_config
), bị thu hẹp vì lý do ngắn gọn:
$ grep -v '^#' /etc/ssh/ssh_config |grep -v '^[[:space:]]*$'
Host *
SendEnv LANG LC_*
HashKnownHosts yes
GSSAPIAuthentication yes
GSSAPIDelegateCredentials no
$ mtr pangolin
Name or service not known: Success
mtr pangolin
?
/etc/resolv.conf
và đầu ra của lệnh nàygrep host /etc/nsswitch.conf
không?