/ etc / hosts의 목적은 무엇입니까? 노드 주소

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

127.0.0.1 localhost

거기있을 게. 왜?

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


답변

파일 /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 에서는 지정된 이름 의 주소 목록 을보고 할 방법이 없었습니다 .


답변

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

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


답변

리눅스에서는 적어도 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에 대해 모른다.


답변