호스트 이름에 대한 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 줄이 없고 이름 지정 서비스(예: DNS 또는 NIS)에도 없음을 의미합니다. 따라서 이 문제를 해결하는 방법은 DNS 또는 NIS(또는 ActiveDirectory?)와 같은 보다 복잡한(분산) 명명 시스템을 사용하는 경우 최종 솔루션에 해당 IP 주소를 추가하는 것입니다. . ______________ † ...귀하의 호스트 파일 게시물에서 이것이 실제로 사실임을 확인했습니다./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

일반적으로 호스트 이름은 /etc/hosts파일과 DNS를 사용하여 확인되며, 시스템의 호스트 이름은 이름 서비스 스위치를 알려줌으로써 확인할 수도 있습니다(이 구성 변경이 그러하듯이).

/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

관련 정보