회사의 클라우드 서비스에서 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 레코드에 입력해야합니다. 자동으로). ifconfighostname -I와 같은 명령을 사용하여 사용중인 주소를 확인하세요.

댓글

  • 답변 해 주셔서 감사합니다. 127.0.0.1 localhost 외에는 ' 내 CentOS 서버와 관련된 케이스가 하나 더 발견되었지만 여전히 호스트를 확인할 수있어서 질문을 수정했습니다 '의 IP.
  • 음, CentOS 서버의 이름과 주소가 DNS 시스템 (또는 사용중인 이름 서비스)에 입력 될 수 있습니다.
  • CentOS 시스템에서 bind 및 bind-utils가 설치되지 않았습니다. 그래서 ' 정말 혼란 스럽습니다.
  • @TheOne Ubuntu는 hostname를 RH 기반 시스템과 다르게 취급합니다 ..put < /etc/hosts 파일의 div id = “e7109f2f93″>

및 iv id가 아닌 127.0.1.1 확인 ..note = “62431bf452″>

(127.0.0.0/8는 루프백 블록이므로 일부 시스템에는 제한된 주소가 미리 정의되어 있지만 모든 주소를 사용할 수 있으므로 어쨌든 localhost에 대해서만 보존 할 수 있습니다.)

  • @heemayl 127.0.1.1 ubuntu14-graphite를 / etc / hosts에 넣은 다음 IP를 확인하여 ' 올바른 IP를 얻지 못했습니다. ' 이치에 맞지 않나요?
  • 답변

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

    실제 클라우드 설정에 따라 서버 인스턴스가 공개 IP는 모르고 VLAN IP 만 알고 있습니다. 이에 대한 자세한 내용은 제공 업체의 문서를 참조해야합니다.

    댓글

    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를보고 있는지도 알 수 없습니다.

    답글 남기기

    이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다