호스트 파일: 동일한 IP 주소를 가진 여러 줄을 갖는 것이 올바르지 않습니까?

호스트 파일: 동일한 IP 주소를 가진 여러 줄을 갖는 것이 올바르지 않습니까?

나는 한동안 호스트 파일을 이와 같이 포맷해 왔습니다. 두 줄 모두 동일한 IP를 가지고 있습니다.

e.f.g.h foo.mydevsite.com
e.f.g.h foo.myOtherDevSite.com

최근에 별칭을 한 줄에 결합해야 한다는 내용을 읽었습니다.

e.f.g.h foo.mydevsite.com foo.myOtherDevSite.com 

그러나 나는 다음과 같이 특정 별칭을 쉽게 주석 처리하거나 특정 별칭에 주석을 추가할 수 없기 때문에 이 접근 방식을 좋아하지 않습니다.

  a.b.c.d foo.mydevsite.com          # myDevSite on box 1
# a.b.c.d foo.myOtherSite.com        # myOtherSite on box 1 
  a.b.c.d ubuntuBox                  

  e.f.g.h foo.myOtherSite.com        # myOtherSite testing environment

지금까지는 모두 잘 작동하고 있습니다. 이것이 문제입니까?

답변1

나는 이런 맥락에서 뭔가를 하는 것에 대해 이야기하는 이 게시물을 발견했습니다. 이 스레드는 /etc/hosts파일에 여러 줄을 포함 하지 않는 것에 대해 매우 엄격합니다 .

발췌-Re: /etc/hosts: 동일한 IP 주소를 가진 두 줄이 있습니까?

아니 난 할 수 없어. 파서는 첫 번째 구문 분석에서 중지됩니다. 다음과 같은 것이 있습니다:

   127.0.0.1 localhost.localdomain localhost
   127.0.0.1 somenode.somedom.com somenode

당신이 말한대로하지 않을 것입니다. 그러나 다음이 있습니다.

   127.0.0.1 somenode.somedom.com somenode
   127.0.0.1 localhost.localdomain localhost

그것은 모든 종류의 혼란을 일으킬 것입니다. 전달을 포함합니다.

나는 일반적으로 당신이 시도하는 것을하지 않을 것입니다. 더 많은 증거가 필요하면 매뉴얼 페이지에서는 다음과 같이 하지 말라고 지시합니다.

발췌man hosts

이 매뉴얼 페이지는 /etc/hosts 파일의 형식을 설명합니다. 이 파일은 IP 주소당 한 줄씩 IP 주소를 호스트 이름과 연결하는 간단한 텍스트 파일입니다. 각 호스트에 대해 다음 정보가 한 줄에 포함되어야 합니다.

         IP_address canonical_hostname [aliases...]

그렇긴 하지만, 호스트 이름이 FQDN이고 겹치지 않는다면 현재 하고 있는 작업을 안전하게 수행할 수 있을 것입니다. 위 스레드에서 언급한 내용과 같이 겹치는 부분이 있으면 해결 문제가 발생할 수 있다는 점을 명심하세요.

답변2

나는 세 번째 접근 방식이 잘 작동한다고 생각합니다. 여기에 문제가 있습니까?

나는 항상 이 작업을 조금씩 수행하지만 man gethostbyaddr시스템 호출을 사용하여 /etc/hostsIP 주소를 이름과 연관시킬 수 있기 때문에 잠재적인 문제가 있습니다. 반대 작업(이름에서 주소 가져오기)을 수행하는 것이 더 일반적이지만 흥미로운 일이 발생할 경우를 대비하여 이 점에 유의하세요.

답변3

Apache 2.4가 Unix 시스템에서 시작을 거부합니다. 근본 원인은 /etc/hosts에 중복된 줄이 있기 때문입니다. 중복된 줄을 제거한 후 웹 서버를 시작할 수 있었습니다.

관련 정보