호스트 이름 대신 / etc / hostname에서 FQDN을 사용해야합니까?


10

맨 페이지에서 읽을 때 호스트 이름 (도메인 이름없이)을로 설정하는 것이 좋습니다 /etc/hostname. 예를 들어 host.domainsub.domaintld 대신 host 입니다 . 내가 아는 그러나, 일부 소프트웨어는 필요에 의존 FQDN/etc/hostname.

/etc/hostname 데비안 / 우분투 머신 에서 무엇을 지정해야 합니까?

FQDN이 아닌 경우 대신 FQDN을 지정해야합니까?

나는 질문이 약간 오래되었지만 명확한 대답을 찾지 못했습니다. 어떤 사람들은 호스트 이름, 어떤 사람들은 FQDN을 말합니다. 감사.


1
FQDN을 / etc / hostname 파일에 넣었다는 사람들을 어디에서 찾을 수 있습니까? 이 파일은 시스템의 호스트 이름 전용입니다.
Terrance

인터넷에서 그것에 관한 자료를 읽을 때 어딘가에서 만났습니다. 그리고 FQDN을 어디에 지정해야합니까?
Bulat M.

@Terrance, 실제로 현장에서 경험이 풍부한 사람들로부터 답변을 받고 싶습니다. 답으로 쓰십시오. / etc / hostname이없는 배포판에서해야 할 일은 무엇입니까?
Bulat M.

답변:


7

/ etc / hostname 파일에서는 호스트 이름 만 사용합니다. 설정할 수있는 FQDN : / etc / hosts는 다음과 같습니다.

127.0.1.1        thishost.mydomain.org    thishost

호스트 파일의 매뉴얼에 따르면.

http://man7.org/linux/man-pages/man5/hosts.5.html


1
FIX : / etc / hostname에서 FQDN을 지정하거나 지정하지 않는 장단점을 알고 있어야합니다. 나는 당신의 해결책에 대해 알고 있습니다 : 그것은 FQDN을 어떤 것으로 해결하기를 원하는 프로그램 (어떤 주소와 상관없이)을위한 스텁입니다.
Bulat M.

12

수정 된 답변 :

호스트 자체는 실제 FQDN을 처리하지 않습니다. 이것은 DNS에 의해 처리됩니다 . FQDN (정규화 된 도메인 이름)은 DNS 이름을 IP 주소로 변환하여 처리됩니다. /etc/hosts파일을 사용하면 본질적으로 DNS 서버를 재정의하는 것입니다. 컴퓨터는 /etc/hosts파일을 먼저 찾아서 호스트 이름 대 IP 주소에 대한 항목이 정의되어 있는지 확인합니다. 항목 /etc/hosts은 다음과 같습니다.

127.0.0.1 localhost
127.0.1.1 terrance-ubuntu.local terrance-ubuntu

이 항목은 배포판이 아닙니다. 모든 OS는이 줄에 대해 동일한 형식을 사용합니다. hosts파일 위치 만 변경됩니다. Linux는 일반적으로 /etc/폴더에 있으며 Windows에서는 일반적으로 C:\Windows\System32\drivers\etc\폴더에 있습니다.

그 줄을 정리하면 terrance-ubuntu.local응용 프로그램이 내 컴퓨터를 떠나지 terrance-ubuntu않도록 응용 프로그램이 컴퓨터를 떠나지 않도록 응용 프로그램이 컴퓨터를 떠나지 않도록 또는 응용 프로그램이 컴퓨터를 떠나지 않도록 알 수 있도록 DNS를 재정의하는 FQDN 자체 인 둘 다를 할당 하고 있음을 알 수 있습니다. 127.0.0.1 ( localhost ). 시스템의 호스트 이름을 할당해도 127.0.1.1네트워크에서 호스트를 찾는 나머지 컴퓨터에는 영향을 미치지 않습니다. DNS가 제대로 작동하면 내 호스트 이름이로 표시됩니다 10.0.0.100. 사용하는 이유 127.0.1.1는 내 시스템이 네트워크의 다른 곳에 있지 않다는 것을 알기 때문에 응용 프로그램에서 시스템을 더 빨리 찾을 수 있기 때문입니다. .localFQDN 인 실제 호스트 이름.local 실제로 네트워크에서 다른 DNS 서버 인 라우터를 통해 설정 한 도메인입니다.

이제 로컬 네트워크의 DNS 서비스가 호스트 이름 또는 FQDN을 IP 주소에 할당하지 않지만 로컬 네트워크의 호스트 IP 주소가 무엇인지 알고 있다고 가정 해 봅시다. 그런 다음 /etc/hosts파일에 호스트를 할당 하여 액세스 할 때마다 호스트의 IP 주소를 입력 할 필요가 없습니다. 호스트는 도구 서버, 프린터 또는 다른 네트워크 연결 시스템 일 수 있습니다. 일반적으로 /etc/hosts파일에 항목을 추가 하십시오.

예를 들어 네트워크 연결 프린터를 사용하려고합니다. 정적 IP는 10.0.0.253입니다. 나는 그것의 이름을 모른다. 이를 위해 전화하고 싶습니다 hp_printer. IP와 호스트 이름을 핑 (ping) 한 다음에 추가합니다 /etc/hosts.

terrance@terrance-ubuntu:~$ ping -c 2 10.0.0.253
PING 10.0.0.253 (10.0.0.253) 56(84) bytes of data.
64 bytes from 10.0.0.253: icmp_seq=1 ttl=255 time=0.326 ms
64 bytes from 10.0.0.253: icmp_seq=2 ttl=255 time=0.334 ms

terrance@terrance-ubuntu:~$ ping -c 2 hp_printer
ping: unknown host hp_printer

terrance@terrance-ubuntu:~$ sudo vi /etc/hosts
10.0.0.253 hp_printer.local hp_printer

terrance@terrance-ubuntu:~$ ping -c 2 hp_printer
PING hp_printer.local (10.0.0.253) 56(84) bytes of data.
64 bytes from hp_printer.local (10.0.0.253): icmp_seq=1 ttl=255 time=0.334 ms
64 bytes from hp_printer.local (10.0.0.253): icmp_seq=2 ttl=255 time=0.303 ms

이제 기억하기 쉬운 IP 주소 대신 지정한 이름으로 프린터 설정 웹 페이지에 액세스 할 수도 있습니다.

여기에 이미지 설명을 입력하십시오

귀하의 /etc/resolv.conf 파일의 파일은 도움말 찾기 호스트 이름을 DNS에 의해 사용된다. 리졸버의 구성 파일입니다. 검색 도메인을 제공하므로 호스트를 찾을 때 항상 FQDN을 지정할 필요가 없습니다. 또한 로컬 네트워크의 DNS 또는 네임 서버에 대한 IP 주소를 제공합니다. search보여 줄 아래에 이름 local내 도메인 이름입니다.

terrance@terrance-ubuntu:~$ cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.0.0.1
search local

이것이 DNS와 FQDN의 작동 방식을 더 잘 이해하는 데 도움이되기를 바랍니다.


왜 / etc / hosts의 FQDN을 127.0.1.1에 매핑합니까?
Bulat M.

1
@BulatM. 수정 된 답변을 참조하십시오.
Terrance

/etc/resolv.conf에서 검색 키워드와 도메인 키워드의 차이점을 설명해 주시겠습니까? resolv.conf의 맨 페이지를 읽고 있지만 여전히 명확하지 않습니다.
Bulat M.

그리고 둘 다 포함시킬 수 있습니까? 유용한 유효한 사례를 제시해 주시겠습니까? 감사.
Bulat M.

1
@BulatM. 내 답변의 링크를 클릭하면 사물에 대한 자세한 정보가 표시됩니다. en.wikipedia.org/wiki/Resolv.conf 처럼 더 많은 정보를 제공합니다. 나는 당신을 가르치지 않고 돕기 위해 여기 있습니다. 이것은 모두 자원 봉사자이므로 돈을받지 못합니다. 여러분 자신의 공부를하십시오.
Terrance

4

의 맨 페이지hostname(1) 에서는이 (굵게 단락이 내게로 강조) :

FQDN
   시스템의 FQDN (정규화 된 도메인 이름)은해결 (3) 등과 같은 호스트 이름을 반환 ursula.example.com .
   일반적으로 호스트 이름 뒤에 DNS 도메인 이름 (부분
   첫 번째 점 뒤에). hostname --fqdn을 사용하여 FQDN을 확인할 수 있습니다.   또는
   사용하여 도메인 이름 dnsdomainname을 .
hostname 또는 dnsdomainname으로 
   FQDN을 변경할 수 없습니다 .

   FQDN을 설정하는 권장 방법은 호스트 이름을
   / etc / hosts, DNS 또는 NIS를 사용하는 완전한 이름의 별명.
   예를 들어, 호스트 이름이 "ursula"인 경우 줄이있을 수 있습니다.
   읽는 / etc / hosts

          127.0.1.1 ursula.example.com ursula

   기술적으로 : FQDN은 호스트에 대해 getaddrinfo (3)가 반환하는 이름입니다.
   gethostname (2)에 의해 리턴 된 이름. DNS 도메인 이름은 다음 부분입니다
   첫 번째 점.

   따라서 리졸버의 구성에 따라 다릅니다.
   /etc/host.conf) 변경 방법 일반적으로 hosts 파일이 구문 분석됩니다
   DNS 또는 NIS보다 먼저 FQDN을 변경하는 것이 가장 일반적입니다.
   / etc / hosts.

그리고 설치하는 동안 FQDN을 호스트 이름으로 제공하면 FQDN 만 호스트 구성 요소에 기록 /etc/hostname하고에 FQDN을 유지합니다 /etc/hosts.

따라서이 경우 설치 프로그램에서 수행하는 작업 만 수행하십시오.


(127.0.1.1 ursula.example.com ursula in / etc / hosts에 포함) 데비안 \ 우분투에만 적용됩니까, 아니면 다른 배포에도 동일하게 적용될 수 있습니까?
Bulat M.

1
다른 배포판에 대해서는 Dunno. 그러나 Arch 및 Cent OS에서 동일한 작업을 수행 할 수 있습니다. 다른 배포판에 대한 질문은 Unix & Linux 에서 문의해야합니다 .
muru
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.