회사의 클라우드 서비스에서 Ubuntu 14.04를 실행하고 있습니다 (내 인스턴스에는 탄력적 IP가 있음). 명령 줄에서 실행중인 인스턴스의 IP 주소를 확인하고 싶지만 작동하지 않습니다.
root@ubuntu14-graphite:~# hostname ubuntu14-graphite root@ubuntu14-graphite:~# hostname -i hostname: Name or service not known
이해할 수 없습니다. 그 이유입니다.
ubuntu14-graphite로 핑을 시도했지만 다음과 같이 표시되었습니다.
unknown host ubuntu14-graphite.
내 호스트가 심지어 존재합니까?
다른 서버가 있습니다 (클라우드 인스턴스가 아니라 물리적 서버). 이 서버에 CentOS 6.7을 설치했습니다. 호스트 이름의 IP를 확인한 결과 /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
답변
system “(저는이 용어를 광범위하고 일반적이며 모호한 의미로 사용하고 있습니다)”ubuntu14-graphite
이름이 호스트 및 해당 IP 주소에 해당하는지 알지 못합니다. (이것이 호스트의 이름 라는 사실만으로는 충분하지 않습니다. .) 이것은 거의 확실하게 /etc/hosts
파일 iv id = “에 ubuntu14-graphite
에 대한 줄이 없음을 의미합니다. 67c62f026d “>
및 이름 지정 서비스 (예 : DNS 또는 NIS)에 없습니다. 따라서이 문제를 해결하는 방법은 ubuntu14-graphite
(및 해당 IP 주소)를 /etc/hosts
에 추가하는 것입니다. DNS 또는 NIS (또는 ActiveDirectory?)와 같은보다 정교한 (분산) 명명 시스템을 사용하는 경우 궁극적 인 솔루션은 해당 서비스에 호스트를 추가하는 것입니다.
_____________
† … 귀하의 호스트 파일 게시물에서 이것이 사실임을 확인했습니다.
어떤 IP 주소를 귀하의 호스트 이름과 연결해야하는지에 대한 몇 가지 논쟁이 있습니다. . 모두가 호스트에 “작동하는”주소 여야한다는 데 동의합니다. 즉, ping A.B.C.D
와 같은 명령이 성공해야합니다. 어떤 사람들은 루프백 주소 사용을 권장합니다. 루프백 주소는 항상 형식 127 .BCD ; 일반적인 값은 127.0.0.1 및 127.0.1.1입니다. 다른 사람들은 192.168 .CD 와 같은 LAN 주소를 사용하는 것이 좋습니다 (하지만 거의 모든 것) — 동적으로 할당 된 주소를 호스트 파일에 입력해서는 안됩니다. DNS와 함께 DHCP를 사용하는 경우 동적으로 할당 된 주소를 DNS 레코드에 입력해야합니다. 자동으로). ifconfig
및 hostname -I
와 같은 명령을 사용하여 사용중인 주소를 확인하세요.
댓글
및 iv id가 아닌 127.0.1.1
확인 ..note = “62431bf452″>
(127.0.0.0/8
는 루프백 블록이므로 일부 시스템에는 제한된 주소가 미리 정의되어 있지만 모든 주소를 사용할 수 있으므로 어쨌든 localhost에 대해서만 보존 할 수 있습니다.)
답변
시스템의 IP 주소를 확인하는 실제 방법은 ifconfig
명령을 사용하는 것입니다.
실제 클라우드 설정에 따라 서버 인스턴스가 공개 IP는 모르고 VLAN IP 만 알고 있습니다. 이에 대한 자세한 내용은 제공 업체의 문서를 참조해야합니다.
댓글
- 아니요.
ip a s
. serverfault.com/q/458628/89813 을 참조하십시오. ifconfig는 Linux에서 더 이상 사용되지 않습니다.
Answer
iv id = “의 hosts
서비스에 myhostname
항목 추가 af0b62a69f “>
.
즉, /etc/nsswitch.conf
:
hosts: files dns
에서이 줄을 다음과 같이 변경합니다.
hosts: files dns myhostname
일반적으로 호스트 이름은 /etc/hosts
파일 및 DNS를 사용하여 확인되는 경우 시스템의 호스트 이름은 이름 서비스 스위치에 그렇게하도록 지시하여 해결되었습니다 (이 구성 변경 사항이 적용됨).
/etc/hosts
파일을 시스템에서 확인할 수 있습니다.
myhostname
플래그에 대한 자세한 내용은 입니다. 여기 .
답변
제 생각에는 호스트 이름 명령 (net-tools 패키지)의 버전에 따라 다릅니다.
참조 : https://bugzilla.redhat.com/show_bug.cgi?id=319981
- ” openSuse Leap 42.3 “:
# hostname -V net-tools 1.60 hostname 1.100 (2001-04-14) # hostname -i hostname: Name or service not known
- Lubuntu 17.10
$ hostname -V hostname 3.18
hostname -i
-IPv6 및 IPv4에 대한 정보를 제공합니다.
댓글
- 버그 보고서는 ,
hostname -i
가 아닙니다. 이는hostname
버전과 관련이 없으며hostname
에서 지정한 호스트 이름을 확인할 수 있는지 여부와 관련이 있습니다.
답변
위의 해결 방법을 적용해도 문제가 여전히 해결되지 않는 경우 :
아래에 표시된 것처럼
telnet
명령의 URL에서http://
부분을 제거해보세요.
사용하는 대신 :
telnet http://website.lab7-2533586.ch-geni-net.instageni.colorado.edu 80
사용해보기 :
telnet website.lab7-2533586.ch-geni-net.instageni.colorado.edu 80
답변
etc / hosts.save로 이동하여 호스트 이름을 확인하십시오. 그런 다음 /etc/hosts
를 편집하여 hosts.save
에 호스트 이름과 호스트 이름을 작성합니다. IP 주소도 확인하십시오. 예 :
127.0.0.1 ubuntu 127.0.1.1 ubuntu.ubuntu-domain ubuntu
설명
-
/etc/hosts
는 실제 IP 주소를 제공하지 않습니다. 또한 '도 왜 전문적이고 관련성이없는/etc/hosts.save
를보고 있는지도 알 수 없습니다.
hostname
를 RH 기반 시스템과 다르게 취급합니다 ..put </etc/hosts
파일의 div id = “e7109f2f93″>