호스트 이름 및 / etc / hosts 이해


13

/ etc / hostname에는 있습니다 myname.

/ etc / hosts에는 다음이 있습니다.

127.0.0.1   localhost.localdomain   localhost myname
::1     localhost.localdomain   localhost myname

나는 실제로 호스트 이름이 무엇이고 무엇이 사용되는지에 대해 모호하게 이해합니다.

이보다 정확한 질문은 더 잘 이해하는 데 도움이 될 수 있습니다.

  1. 위의 예에서 실제로 호스트 이름은 무엇입니까? myname또는 다른 것? 대신 myname.domain.com/etc/hostname실제 호스트 이름은 무엇입니까?

  2. 이 예에서는 명령 hostname이을 반환 myname하고 명령 hostname -f은을 반환합니다 localhost.localdomain. 나는 그것이 /etc/hosts이름과 IP 주소 사이의 매핑 일뿐이라는 것을 명심했다 . 다른 기능을 제공하는 것 같습니다. fqdn은 무엇이며 어떤 용도로 사용됩니까? 어떻게 검색합니까? 왜 그렇 localhost.localdomain습니까?

  3. 내가 대신했다 경우 myname.domain.com/etc/hostname, hostname -f반환합니다 myname.domain.com. 왜?

  4. 이 파일에서 fqdn이 점으로 끝나지 않는 이유는 무엇입니까?

  5. 인가 hostname -ddnsmydomain동등한?

  6. 어떤 컨텍스트에서 호스트 이름 ( myname)을 사용할 수 있으며 언제 fqdn ( localhost.localdomain) 을 사용해야 합니까?

답변:


9
  1. /etc/hostname로컬로 실행되는 응용 프로그램에 알려진 시스템 이름을 포함합니다. /etc/hosts및 DNS 연결 이름과 IP 주소. myname머신이 자신이 액세스 할 수있는 IP 주소에 매핑 될 수 있지만 매핑 127.0.0.1은 비유 의적입니다.
  2. 아니 /etc/hosts,하지만 /bin/hostname또 다른 기능을 제공합니다 -f.
  3. /etc/hosts상식을 무시할 수 있기 때문 입니다. 주의해서 편집하고 임시 패치 및 실험 후에는 쓰레기를 버리지 마십시오.
  4. 두 가지 스타일 (⋯ .TLD. 및 ⋯ .TLD )을 모두 사용할 수 있습니다. 전자는 모호하지 않은 반면 후자는 어디에나있다.
  5. 무엇인지 dnsmydomain모르지만 가능성은 없습니다. 무언가를 찾는 /etc/hosts것은 기술적으로“DNS”가 아닙니다.
  6. 요점 1을 기억하십시오. 호스트 이름 – 로컬로 실행되는 응용 프로그램의 경우. SMB (samba)와 같은 고유 한 네트워크 프로토콜에도 적용됩니다. FQDN (위조 또는 플레이스 홀더가 아닌 경우 localhost.localdomain) – 외부에서 머신에 액세스합니다. FQDN은 사용되는 곳에서 해결할 수 있어야합니다.

1
내 IP가 동적 (DHCP)이고 수시로 변경되면 어떻게됩니까? myname/ etc / hosts에서 어떤 주소를 사용해야 합니까?
user156516

3

나는 누군가가 매뉴얼을 읽도록 지시 할 때 절대적으로 싫어하지만이 경우 호스트 이름에 대한 맨 페이지를 살펴보십시오. 모든 질문에 대답 해야하는 것은 아닙니다. 내가 설명 할 수있는 것보다 훨씬 낫습니다.

도움을주기 위해 질문에 대한 일부 발췌 내용은 다음과 같습니다.-호스트 이름은 / etc / hosts에 표시됩니다. -반환 된 FQDN은 리졸버가 반환하는 결과를 기반으로하므로 리졸버가 호스트 파일을 먼저 확인한 후 필요한 DNS 쿼리를 수행 할 때 / etc / hosts의 값이 반환되는 이유를 알 수 있습니다.

내가 믿지 않는 것은 호스트 이름 매뉴얼 페이지에서 (내 매뉴얼 페이지를 다시 읽은 것을 기반으로) 만져 졌기 때문에 파일의 항목이 점으로 끝나지 않는 이유입니다.

이 규칙은 DNS 레코드를 처리 할 때 사용됩니다. 호스트 이름 및 호스트 파일은 실제로 DNS 레코드가 아닙니다. 바인드에서 이러한 항목을 구성하여 DNS 조회를 해결 한 경우 점을 사용할 수 있습니다 ( http://www.zytrax.com/books/dns/apa/dot.html 참조). ).

또한 이러한 모든 값이 시스템에서 브로드 캐스트되지는 않습니다. 따라서 다른 시스템이 FQDN을 기반으로 액세스하도록하려면 다른 시스템의 호스트 파일을 기반으로하거나 외부 시스템이 FQDN에서 다시 확인할 수 있도록 외부 시스템이 수행하는 DNS 조회를 기반으로 호스트 항목이 없습니다. 체계.



3

에 대한 답변

내 IP가 동적 (DHCP)이고 수시로 변경되면 어떻게됩니까? / etc / hosts에서 어떤 주소를 myname으로 사용해야합니까?

먼저 / etc / hosts는 설치된 호스트에 대한 이름 대 주소 매핑의 정적 정의이며 해당 호스트 만 이름을 IP 주소로 변환하는 데 사용됩니다.

따라서 호스트 'myname'과 다른 모든 두 가지 관점을 고려해야합니다.

해당 'myhost'호스트의 경우 'localhost'(/ etc / hosts에 127.0.0.1로 정의 됨)를 사용하여 현재 호스트를 참조하거나 'myname'을 localhost를 정의하는 / etc / hosts 행에 추가하여 'myname' '는 항상 localhost에 매핑됩니다. 이렇게 :

127.0.0.1 로컬 호스트 myname

그런 다음 INTERFACE가 제공하는 IP 주소에 관계없이 항상 작동하는 주소를 갖게됩니다 (추가 보너스는 'myname'에서 'myname'으로 대화하기 위해 하드웨어를 칠 필요가 없다는 것입니다).

이제 'myhost'에 동적 IP 주소가있을 때 다른 호스트가 'myhost'를 찾을 수있게하려면 DNS를 사용해야하며 DNS 서버는 DHCP 할당 매핑을 처리해야합니다. (좋아요, 내가 생각할 수있는 다른 솔루션이 있지만, 생각 나게하는 모든 것은 IMHO의 '비대칭'범주에 맞습니다. 글쎄, 호스트에게 IT가 DNS를 알리도록 할 수있는 일이 있습니다. 그것이 어디에 있지만, 그것은 완전히 다른 질문 / 답변 스트림, IMHO에 합당한 질문입니다)


2

/ etc / hostname/ etc / hosts 는 단순하지만 그렇게 단순하지는 않습니다 ...

얼마나 빨리에 설치 데비안 /etc/hostname/etc/hosts

1) / etc / hostname을 편집하십시오 .

이것을 설정하는 두 가지 유효한 방법이 있습니다.

그것을 만드십시오 :

  • machine즉,이 프로세서에 대한 간단한 한 단어 이름입니다.
    예를 들어, ' joe'는 사용자가 선택한 컴퓨터 이름 일 수 있습니다.
    이것은 / etc / hosts에 별명을 필요로하며, 아래에 자세히 설명되어 있습니다.

또는

  • machine.domain.net즉, FQDN (정규화 된 도메인 이름)입니다.
    예를 들어 ' joe.xyz.com'입니다.
    이는 joe.xyz.com에서 joe의 IP 주소 (예 : joe라는 컴퓨터)를 가리키는 DNS 호스트 'A'레코드가 있다고 가정합니다. 일반적으로이 레코드는 도메인 이름을 구입 한 위치에 설정합니다. 순간.)

일단 / 등 / 호스트 이름이 설정되고, 그 다음 단계는 명령 얻을 수 있습니다 hostname --all-fqdndnsdomainname다음과 같이 순서대로, 제대로 작동하기를 :

2) / etc / hosts를 편집하십시오 .

여기에는 다음 과 같이이 호스트의 FQDN에 대한 라인이 있습니다 ( 예 : 'machine.domain.net').

#   IP           FQDN (CANONICAL_HOSTNAME)   ALIASES
#-------------- --------------------------- ------------------------
192.168.1.14    Joe.xyz.com                 joe
  • 먼저, 대문자 또는 소문자는 중요하지 않습니다 . 팁 : 그러나 한도를 설정하면 다음 단계에서 발생하는 위치를 알 수 있습니다. 그래서 나는 J oe를 대문자로했다 .

  • 또한 간단한hostname (예 : / etc / hostname = 'machine') FQDN을 올바르게 생성 하려면 'machine'이라는 별칭 이 / etc / hosts에 있어야합니다. 그것이 별명 joe 가있는 이유 입니다. (BTW, 별명을 사용하지 않아도 괜찮습니다.) 그렇지 않으면이 별명이 필요하지 않으며 사용되지도 않습니다.

  • 또한 'domain.net'은 분석 가능해야합니다. 즉, DNS에 A 레코드가 있어야합니다. 이것이 바로 ' 해결 가능 '(즉, DNS 확인자)입니다.

3) 이제 다음을 실행하여 / etc / hostname 및 / etc / hosts의 새 설정을 커널에 설치하십시오.

    $ /etc/init.d/hostname.sh       # Or by rebooting

4) 테스트 호스트 이름

$ hostname      # Reports the hostname previously read from in /etc/hostname.
joe

또는

$ hostname
joe.xyz.com

팁 :

  • 이것은 현재 다시 편집하는 것처럼 / etc / hostname이 아니라 이전에 /etc/init.d/hostname.sh 스크립트가 읽은 것입니다 (재부팅 결과).

  • 또한 'j'는 소문자이므로 / etc / hosts가 아니라 / etc / hostname에서 온 것임을 나타냅니다.

5) FQDN 테스트

$ hostname --all-fqdn   #reports the FQDN(s) matched in /etc/hosts.
Joe.xyz.com             #  It searches /etc/hosts for the joe in /etc/hostname.
                        #  Notice that the 'J' is uppercase.  
                        #     This suggest it came from /etc/hosts.

6) DNS 도메인 이름 테스트

$ dnsdomainname         #reports the computed DNS doman name    
xyz.com                 #  (i.e. the right most part of the FQDN; 
                        #    the part to the right of the first, left most, dot)
                        #  This is coming from Joe.xyz.com in /hosts, 
                        #    after 'Joe.' is removed.

이제 웹 및 이메일 서버를보다 쉽게 ​​설정할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.