호스트 이름의 IP를 확인할 때 "호스트 이름: 이름 또는 서비스를 알 수 없음" 오류가 발생했습니다.

호스트 이름의 IP를 확인할 때 "호스트 이름: 이름 또는 서비스를 알 수 없음" 오류가 발생했습니다.

저는 회사의 클라우드 서비스에서 Ubuntu 14.04를 실행하고 있습니다(내 인스턴스에는 탄력적 IP가 있습니다). 명령줄을 통해 실행 중인 인스턴스의 IP 주소를 확인하고 싶지만 작동하지 않습니다.

root@ubuntu14-graphite:~# hostname
ubuntu14-graphite
root@ubuntu14-graphite:~# hostname -i
hostname: Name or service not known

나는 그 이유를 이해하지 못한다. 

ubuntu14-graphite에 ping을 시도했지만 다음과 같이 말했습니다.

unknown host ubuntu14-graphite.

그렇다면 내 호스트가 존재하지 않는다는 뜻인가요?

다른 서버(클라우드 인스턴스가 아닌 물리적 서버)가 있습니다. 이 서버에는 CentOS 6.7을 설치했습니다. 호스트 이름의 IP를 확인했는데 특별한 것이 없는데도 작동했습니다 /etc/hosts.

출력은 다음과 같습니다 cat /etc/hosts.

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

답변1

ubuntu14-graphite 이는 "시스템"(나는 이 용어를 광범위하고 일반적이며 모호한 의미로 사용함)이 이름이 호스트 및 해당 IP 주소에 해당하는지 모른다는 것을 의미합니다 . (사실은 호스트의 것입니다.이름충분하지 않습니다.) 이는 파일 ubuntu14-graphite 에 for 줄이 없고 이름 지정 서비스(예: DNS 또는 NIS)에 없음을 의미하는 것이 거의 확실합니다. 결과적 으로 이 문제를 해결하는 방법은 . DNS나 NIS(또는 ActiveDirectory?)와 같은 보다 정교한(분산) 명명 시스템을 사용하는 경우 궁극적인 해결책은 해당 서비스에 호스트를 추가하는 것입니다. ______________ † ... 귀하의 호스트 파일 게시물을 보면 이것이 사실임을 알 수 있습니다./etc/hostsubuntu14-graphite/etc/hosts

호스트 이름과 연결해야 하는 IP 주소에 대한 질문에 대한 논쟁이 있습니다. 모두가 호스트에게 "작동하는" 주소여야 한다는 데 동의합니다. 즉, 다음과 같은 명령은 성공해야 합니다. 어떤 사람들은 루프백 주소 사용을 권장합니다. 루프백 주소는 항상 127 형식입니다.ping A.B.C.D.BCD; 일반적인 값은 127.0.0.1 및 127.0.1.1입니다. 다른 사람들은 192.168과 같은 LAN 주소 사용을 권장합니다..CD(그러나 거의 모든 것이 가능합니다.) — 그러나 동적으로 할당된 주소를 호스트 파일에 넣어서는 안 됩니다. (그리고 DNS와 함께 DHCP를 사용하는 경우 동적으로 할당된 주소는 자동으로 DNS 레코드에 입력되어야 합니다. ). 사용 중인 주소를 확인하려면 ifconfig및 같은 명령을 사용하세요 .hostname -I

답변2

머신의 IP 주소를 확인하는 실제 방법은 ifconfig명령을 사용하는 것입니다.

실제 클라우드 설정에 따라 서버 인스턴스는 공인 IP를 인식하지 못하고 VLAN IP만 알 수 있다는 점에 유의하세요. 이에 대한 자세한 내용은 공급자의 설명서를 참조해야 합니다.

답변3

의 서비스 myhostname에 항목을 추가합니다 .hosts/etc/nsswitch.conf

즉, 다음 줄을 변경하십시오 /etc/nsswitch.conf.

hosts:      files dns

이에:

hosts:      files dns myhostname

일반적으로 호스트 이름은 파일과 DNS를 사용하여 확인되지만 /etc/hosts, 시스템의 호스트 이름은 이름 서비스 스위치에 지시하여 확인할 수도 있습니다(이 구성 변경이 가능함).

/etc/hosts이는 로컬 호스트 이름을 확인할 수 있는 시스템의 파일 에 대해 특별한 내용이 표시되지 않는 이유를 설명합니다 .

국기 에 대한 자세한 내용 myhostname여기.

답변4

etc/hosts.save로 이동하여 호스트 이름을 확인하세요. 그런 다음 /etc/hosts 호스트 이름과 호스트 이름을 hosts.save. IP 주소도 확인해보세요. 예:

127.0.0.1    ubuntu   
127.0.1.1    ubuntu.ubuntu-domain    ubuntu

관련 정보