/ etc / hosts의 목적은 무엇입니까?


21

내가 이해하는 것처럼 hosts파일은 컴퓨터 네트워크의 네트워크 노드 주소 지정을 지원하는 여러 시스템 기능 중 하나입니다. 그러나 그 안에 무엇이 있어야합니까? 기본적으로 우분투를 설치할 때

127.0.0.1 localhost 

거기있을 게. 왜?

  • /etc/hostsCassandra와 같은 JVM 시스템의 경우 어떻게 작동합니까?
  • DNS 대안은 언제입니까? 단일 컴퓨터가 아닌 것 같습니다.


/etc/hosts포함 127.0.0.2 mycouchdb bookmarkdb myothercouchapp127.0.0.3 myapachi website나는 이것을 사용하여 로컬 컴퓨터에서 개발하는 데 도움이됩니다. 포트 80에서 수신 대기하는 3 개의 서비스가 있습니다. 로컬에만 있기 때문에 DNS에 배치하고 싶지 않습니다.
ctrl-alt-delor

당신은 시도 했습니까 man 5 hosts?
Reinstate Monica-M. Schröder

Linux에 자세한 설명이있는 맨 페이지가 없습니까? 이것이 가장 기본적인 질문입니다.
Rob

답변:


45

파일 /etc/hosts은 인터넷에 연결된 모든 호스트 (DNS가 존재하기 전에)에 대한 해상도 파일로 DARPA 시절에 시작되었습니다. 최대 우선 순위를 가지며이 이름은 다른 이름 시스템보다 우선합니다. 1

그러나 단일 파일로 확장 할 수 없습니다. 파일 크기가 너무 빨리 커집니다. 이것이 계층 적 분산 이름 시스템 인 DNS 시스템이 개발 된 이유입니다. 모든 호스트가 다른 호스트의 숫자 주소를 효율적으로 찾을 수 있습니다.

파일 의 아주 오래된 개념은 /etc/hosts주소와 호스트 이름만으로 매우 간단합니다.

127.0.0.1      localhost

각 줄마다. 이것은 주소-호스트 쌍의 간단한 목록입니다. 2

현재 가장 많이 사용되는 것은 DNS 확인을 우회하는 것입니다. /etc/hosts파일 에서 찾은 일치는 DNS 입력 전에 사용됩니다. 실제로 localhost파일에서 검색된 이름 ( )이 발견되면 DNS 확인이 전혀 수행되지 않습니다.


1 이름 확인 순서는 실제로에 정의되어 /etc/nsswitch.conf있으며 일반적으로이 항목이 있습니다.

hosts:          files dns

"파일 ( /etc/hosts)을 시도하고 실패하면 DNS를 시도하십시오"라는 의미 입니다.

그러나 그 순서는 변경되거나 확장 될 수 있습니다.


2 (현재) 호스트 파일에는 첫 번째 텍스트 필드의 IP 주소와 하나 이상의 호스트 이름으로 구성된 텍스트 줄이 포함됩니다. 각 필드는 공백으로 구분됩니다. 탭은 종종 역사적인 이유로 선호되지만 공백도 사용됩니다. 주석 줄이 포함될 수 있습니다. 그것들은 그러한 라인의 첫 번째 위치에서 옥토 프 (#)로 표시됩니다. 파일에서 완전히 빈 줄은 무시됩니다. 예를 들어 일반적인 호스트 파일에는 다음이 포함될 수 있습니다.

127.0.0.1   localhost loopback
::1         localhost localhost6 ipv6-localhost ipv6-loopback mycomputer.local
192.168.0.8 mycomputer.lan
10.0.0.27   mycomputer.lan

이 예에는 시스템의 루프백 주소와 호스트 이름에 대한 항목이 포함되어 있으며 첫 번째 줄은 호스트 파일의 일반적인 기본 내용입니다. 두 번째 줄에는 여러 개의 추가 (로컬 시스템에서만 유효) 이름이 있습니다. 이 예는 IP 주소가 여러 호스트 이름 (localhost 및 루프백)을 가질 수 있고 호스트 이름이 각각 첫 번째 및 두 번째 행에 표시된대로 IPv4 및 IPv6 IP 주소 모두에 맵핑 될 수 있음을 보여줍니다. 하나의 이름 ( mycomputer.lan)은 여러 주소 ( 192.168.0.8 10.0.0.27)로 해석 될 수 있습니다 . 그러나이 경우 사용되는 경로는 컴퓨터에 설정된 경로 (및 우선 순위)에 따라 다릅니다.

일부 구형 OS 에서는 지정된 이름 의 주소 목록 을보고 할 방법이 없었습니다 .


5

데스크탑 환경 내의 로컬 시스템에 사람이 읽을 수있는 이름을 부여하기 위해 / etc / hosts 파일을 사용하는 것은 매우 합리적입니다. 호스트 파일은 홈 네트워크 또는 소규모 비즈니스 환경에서 사용하기에 좋습니다. 인터넷 주소 지정과 같은 공용 영역이 될 수 없습니다. 그러면 DNS가 필요합니다. 로컬 네트워크가 충분히 크거나 단순히 다른 하위 네트워크 또는 다른 유용한 이유를 잘라 내면 DNS가 선호됩니다.

로컬 호스트 파일 및 DNS는 우선 순위가 다른 것으로 관리되므로 충돌이 없습니다.


4
충돌에 대해 동의하지 않을 것입니다. 그룹 별 A 호스트가 오래된 /etc/hosts항목을 남겼 기 때문에 나중에 그룹 B (내 그룹)가 실패 했기 때문에 디버그하기 어려운 여러 문제 가 있습니다. 그리고 우리는/etc/hosts
thrig

파일 내부의 충돌은 물론 존재하지만 기계 소유자 자신의 잘못 일 수 있습니다 :)
francois P

2
또한 분쟁이없는 것에 동의하지 않습니다. DNS 변경과 충돌하는 오래된 호스트 항목으로 인해 매우 이상한 오류 를 디버깅해야했습니다 .
Rui F Ribeiro

@ thrig : 아마도 문제는 그룹이 너무 커서 / etc / hosts를 효과적으로 사용할 수 없다는 것입니다. 내 홈 네트워크의 5 대 (현재)에 완벽하게 작동합니다.
jamesqf

그럼 충돌이 생각하지 않는 시스템은, 그것은 사물의 우선 순위에 관한 명확한 지침 있어요 : P는
StarWeaver

3

리눅스에서는 적어도 localhost 의 해당 IPv6 주소뿐만 아니라 항상 127.0.0.1 localhost파일 내에 있어야한다고 감히 말합니다 ./etc/hosts

단순히 숫자 IPv4 또는 IPv6 주소로의 호스트 이름 확인입니다. (a) 가까운 곳에 있는 어딘가에 있는 unix.stackexchange.com 또는 (b) 에있는 근거리 통신망의 myotherpc 에 네트워크를 연결하려고하면 /etc/hostsDNS (Domain Name Server) 또는 unix.stackexchage.com 을 입력 하면 컴퓨터가 실제로 알아야 할 185.53.179.7의 값 을 기억할 필요가 없습니다 .

로가 리눅스에서 지적 된 /etc/nsswitch정의하는 호스트 이름 확인하기 위해, 다음 마지막으로 파일을 확인 NIS를 확인하기 전에 먼저 체크 DNS를 의미하는 것이 일반적으로 /etc/hosts다른 호스트를 찾을 수 없습니다

주문 확인을 관리하는 방법과 DNS 또는 NIS 서비스를 관리하는 대상 / 장소 / 누가 결정해야 하는가 / / etc / nsswitch 를 수정 /etc/hosts하여 DNS 또는 NIS 로만 체크인 하고 절대로 체크인하지 않도록 모든 것을 무시할 수 있습니다 .

2 대 N과 같은 몇 대의 컴퓨터로 구성된 간단한 홈 네트워크의 경우 관리자는 /etc/hosts모든 컴퓨터에서 간단하게 편집 하여 도메인 이름 서버 또는 다른 서비스를 하나의 마스터 위치로 설정하는 것보다 쉽고 빠르며 저렴합니다. IP 주소에 대한 호스트 이름 확인 권한

리눅스 웹 검색의 역사와 이유 뒤에 localhost. 리눅스에서 많은 것들이 127.0.0.1로 해석되는 localhost라는 이름에 의존하며, 이것이 발생하지 않으면 문제가 발생하며,이 localhost 정의는 / etc / hosts와 같은 로컬 시스템 파일에서 발생합니다.

/etc/hosts기본적으로 리눅스 운영 체제가 호스트 이름 확인을 위해 대체되는 마지막 말과 마지막 것입니다. Windows XP 및 7에서 해당 파일은 C:\Windows\System32\drivers\etc\lmhosts Windows 8 또는 10에 대해 모른다.


호스트 파일, 특히 Windows에서 일반적으로 사용되는 프로그램은 프로그램의 시도를 '콜 콜'하려고하는 널 장치로 전환하는 것입니다. 이것이 합법성 검사를 방해하는 것일 수 있다고 제안하는 것이 나에게서 멀었습니다.
Laurence Payne

나는 여전히 내 아이폰에서 / etc / hosts를 편집 할 수있는 편집기를 찾지 못했다. 그래서 나는 내 LAN에서 DNS를 실행한다
ivanivan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.