내 /etc/hosts 파일이 읽히지 않는 이유는 무엇입니까?

내 /etc/hosts 파일이 읽히지 않는 이유는 무엇입니까?

/etc/hosts파일은 다음과 같습니다.

# Your system has configured 'manage_etc_hosts' as True.
# As a result, if you wish for changes to this file to persist
# then you will need to either
# a.) make changes to the master file in /etc/cloud/templates/hosts.tmpl
# b.) change or remove the value of 'manage_etc_hosts' in
#     /etc/cloud/cloud.cfg or cloud-config from user-data
127.0.1.1 ansible-server ansible-server
127.0.0.1 localhost

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

node1 0.0.0.0
node2 0.0.0.0

node1과 를 추가했는데 node2, 자연 IP가 0.0.0.0노드의 IP로 대체되었습니다.

나는 이것이 잘 작동한다고 생각했지만 그렇지 않습니다. SSH가 파일을 무시한다고 생각합니다 hosts.

root@ansible-server:~# ssh root@node1
ssh: Could not resolve hostname node1: Name or service not known
root@ansible-server:~# ssh root@node2
ssh: Could not resolve hostname node2: Name or service not known

그러나 다음 서버 중 하나를 이름으로 ping할 수는 없습니다.

root@ansible-server:~# ping node1
ping: unknown host node1
root@ansible-server:~# ping node2
ping: unknown host node2

분명히 내가 여기서 정말 멍청한 짓을 하고 있는 게 분명해... 그런데 뭐?

추가 정보: 이 서버는 Ubuntu 14.04.2 LTS를 실행 중이며 DigitalOcean에서 호스팅됩니다. 이는 Ansible 서버에서 발생합니다.

답변1

행의 형식 /etc/hosts은 주소가 먼저이고 이름이 마지막입니다.

0.0.0.0 node1 
0.0.0.0 node2 
192.168.1.1 myroutermaybe
8.8.8.8 googledns # in case DNS doesn't work for DNS???
127.0.0.1 localhost 

또는 여러 이름이 동일한 주소에 매핑되는 상황

0.0.0.0 node1 node2 node3 stitch626 

알림을 보내주신 fpmurphy1에게 감사드립니다.

이름(여러 개인 경우)은 등의 정식 또는 "공식" 이름으로 사용됩니다 gethostbyaddr. 따라서 해당 컴퓨터/주소에 도메인 이름이 할당된 경우 일반적으로 정규화된 도메인 이름( FQDN)을 이름으로 사용합니다.

답변2

7년 5개월 전 질문

내 /etc/hosts 파일이 읽히지 않는 이유는 무엇입니까?

보고 있다/etc/nsswitch.conf

이 줄

hosts:      files dns myhostname

그렇지 않은 files경우 확실히 읽히지 않습니다. 먼저 오지 않으면 먼저 오는 것이 먼저 사용되며 파일이 도착하기 전에 발견된 내용이 있기 때문에 파일을 읽지 않은 것처럼 files보일 수 있습니다. /etc/hosts다른 것주인문서.

내 예는 RHEL 7.9에서 가져온 것입니다. files적어도 새로 Linux를 설치하는 경우에는 기본적으로 거의 항상 가장 먼저 나옵니다. 그러나 이는 Linux가 어디에서나 사용되도록 구성되면 변경될 수 있으며 변경될 것입니다.

관련 정보