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

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

/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. 예제에서는 command hostnamereturn myname과 command hostname -freturn 을 반환합니다 localhost.localdomain. 제 생각엔 /etc/hosts이름과 IP 주소 사이의 매핑일 뿐이라고 생각합니다. 여기에는 또 다른 기능이 있는 것 같습니다. FQDN이란 무엇이며 어떤 용도로 사용됩니까? 검색하는 방법? 왜 localhost.localdomain?

  3. myname.domain.com내가 들어가면 다시 /etc/hostname돌아올 hostname -f것이다 myname.domain.com. 왜?

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

  5. hostname -d과 동등합니까 dnsmydomain?

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

답변1

  1. /etc/hostname로컬로 실행되는 애플리케이션에 알려진 시스템 이름을 포함합니다. /etc/hostsDNS는 이름을 IP 주소와 연결합니다. myname컴퓨터가 액세스할 수 있는 모든 IP 주소에 매핑할 수 있지만 매핑하는 것은 127.0.0.1보기에 좋지 않습니다.
  2. 아니요 /etc/hosts, 하지만 /bin/hostname다른 기능이 있습니다 -f.
  3. 왜냐하면/etc/hosts상식을 초월할 수 있다. 신중하게 편집하고 임시 패치 및 실험 후에 쓰레기를 버리지 마십시오.
  4. 두 가지 스타일(⋯.최상위 도메인.그리고….최상위 도메인)이것은 허용됩니다. 전자는 명시적이지만 후자는 보편적이다.
  5. 그것이 무엇인지는 확실하지 않지만 dnsmydomain그럴 가능성은 없습니다. 기술적으로 말하면, DNS에서 무언가를 찾는 /etc/hosts것은 "DNS"가 아닙니다 .
  6. 1. 호스트 이름 – 로컬로 실행되는 응용 프로그램에 적용되며 SMB(Samba)와 같은 특수 네트워크 프로토콜에도 적용됩니다. FQDN(가짜 또는 같은 자리 표시자가 아닌 경우 localhost.localdomain) - 외부에서 시스템에 액세스하는 데 사용됩니다. FQDN은 사용되는 위치에서 확인할 수 있어야 합니다.

답변2

/etc/호스트 이름그리고/etc/호스트아주 간단하지만 그렇게 간단하지는 않습니다...

/etc/hostname데비안 을 빠르게 설정하는 방법/etc/hosts

1)편집하다/etc/호스트 이름.

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

다음 중 하나를 수행하십시오.

  • machine, 프로세서에 대한 간단한 한 단어 이름입니다.
    예를 들어, " joe"는 선택한 시스템 이름일 수 있습니다.
    아래 설명과 같이 /etc/hosts에 별칭이 필요합니다.

또는

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

한 번/etc/호스트 이름설정이 완료되면 다음 단계는 명령을 받는 것입니다.hostname --all-fqdn그리고dnsdomainname제대로 작동하려면 순서는 다음과 같습니다.

2)편집하다/etc/호스트.

호스트를 위한 줄이 있습니다정규화된 도메인 이름, 예를 들어 "machine.domain.net"과 같이 로컬 IP 주소(동적 IP 주소 서버의 주소일 수 있음)가 접두어로 붙습니다.

#   IP           FQDN (CANONICAL_HOSTNAME)   ALIASES
#-------------- --------------------------- ------------------------
192.168.1.14    Joe.xyz.com                 joe
  • 먼저 주의사항대문자, 소문자는 중요하지 않습니다.여기. 힌트:그러나 일부 제한을 설정하면 다음 단계에서 상황이 어디에서 오는지 알 수 있습니다. 그래서 대문자로 썼어요제이아.

  • 또한 참고하시기 바랍니다간단하게hostname(예: /etc/hostname = 'machine') FQDN을 올바르게 생성하려면별명/etc/hosts에 "machine"이라는 파일이 있어야 합니다. 그렇기 때문에 별칭은당신은 가지고 있습니까? (그런데 이 별칭을 사용하지 않더라도 사용할 수 있습니다.) 그렇지 않으면 별칭이 필요하지 않거나 사용되지 않습니다.

  • 또한 "domain.net"은 확인 가능해야 합니다. 즉, 해당 A 레코드가 DNS에 있어야 합니다. 이것은 ... 불리운다'분석 가능한'(즉, 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.

이제 네트워크와 이메일 서버 설정이 훨씬 쉬워졌습니다.

답변3

나는 매뉴얼을 읽으라는 말을 듣는 것을 정말 싫어하지만 이 경우 호스트 이름의 매뉴얼 페이지를 확인하고 전부는 아니더라도 대부분의 질문에 답해야 합니다. 제가 설명할 수 있는 것보다 훨씬 더 잘 쓰여졌습니다.

도움을 드리기 위해 귀하의 질문과 관련된 일부 발췌문을 제공합니다. - 호스트 이름은 /etc/hosts에 표시되는 이름입니다. - 반환된 FQDN은 확인자가 반환하는 내용을 기반으로 하므로 확인자가 먼저 호스트 파일을 확인한 다음 필요한 DNS 쿼리를 수행하므로 반환된 /etc/hosts의 값을 볼 수 있습니다.

나는 호스트 이름 매뉴얼 페이지에 언급된 문제 중 하나가(맨 페이지를 직접 다시 읽은 것에 기초하여) 파일의 항목이 점으로 끝나지 않는다는 것이라고 생각하지 않습니다.

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

또한 이러한 값 중 어느 것도 시스템에서 브로드캐스트되지 않는다는 점을 명심하세요. 따라서 FQDN을 기반으로 다른 시스템에 액세스할 수 있도록 하려는 경우 해당 시스템의 호스트 파일을 기반으로 하거나 외부 시스템이 FQDN에서 수행하는 DNS 조회를 기반으로 누락된 호스트 항목이 있습니다. 시스템으로 다시 해결하십시오.

답변4

답변으로

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

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

따라서 고려해야 할 두 가지 관점이 있습니다. 호스트 "내 이름"과 다른 사람입니다.

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

127.0.0.1 localhostmyname

그러면 인터페이스에 어떤 IP 주소가 제공되든 항상 주소를 사용할 수 있습니다("myname"에서 "myname"으로 대화하기 위해 하드웨어를 클릭할 필요가 없다는 추가 보너스도 있음).

이제 동적 IP 주소가 있는 경우 다른 호스트가 "myhost"를 찾을 수 있도록 하려면 DNS를 사용해야 하며 해당 DNS 서버는 DHCP 할당 매핑을 처리해야 합니다. (흠, 알겠습니다. 제가 생각할 수 있는 다른 솔루션이 있지만 IMHO 제가 생각하는 모든 솔루션은 "멍청한" 범주에 속합니다. 호스트에 뭔가를 하여 IT가 DNS에 위치를 알려 주도록 할 수는 있지만 그게 전부입니다. 여기서는 완전히 다른 질문/답변 스트림이 필요한 질문입니다. IMHO)

관련 정보