/etc/hosts는 무엇을 위해 사용됩니까?

/etc/hosts는 무엇을 위해 사용됩니까?

내가 이해한 바로는 이 hosts파일은 컴퓨터 네트워크의 네트워크 노드 주소를 지정하는 데 도움이 되는 여러 시스템 기능 중 하나입니다. 하지만 안에는 무엇이 들어 있어야 할까요? 기본적으로 Ubuntu를 설치하면

127.0.0.1 localhost 

거기있을 게. 왜?

  • /etc/hostsCassandra와 같은 JVM 시스템은 어떻게 작동하나요?
  • DNS는 언제 대체될 수 있나요? 컴퓨터 한 대에는 없을 것 같은데요?

답변1

이 파일은 /etc/hosts(DNS가 존재하기 전) 인터넷에 연결된 모든 호스트에 대한 해결 파일로 DARPA의 옛날부터 시작되었습니다. 우선순위가 가장 높습니다. 즉, 파일이 다른 이름 시스템보다 우선합니다. 1

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

이것매우이전 파일 개념은 /etc/hosts주소와 호스트 이름만으로 매우 간단했습니다.

127.0.0.1      localhost

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

현재 주요 용도는 DNS 확인을 우회하는 것입니다. 파일에서 발견된 일치 항목은 /etc/hostsDNS 항목 이전에 사용됩니다. 실제로 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)로 해석될 수 있습니다. 그러나 이 경우 어떤 것이 사용되는지는 컴퓨터에 설정된 라우팅(및 우선순위)에 따라 다릅니다.

일부 오래된 운영 체제안 돼요보고하다주소 목록주어진 이름에 대해.

답변2

데스크탑 환경에서 로컬 시스템에 사람이 읽을 수 있는 이름을 제공하려면 /etc/hosts 파일을 사용하는 것이 좋습니다. 호스트 파일은 홈 네트워크나 소규모 비즈니스 환경에서 사용하기에 이상적입니다. 이는 인터넷 주소 지정과 같은 공개적인 측면이 될 수 없습니다. 그렇다면 DNS가 필요합니다. 로컬 네트워크가 충분히 크거나 다른 서브넷으로 나누어져 있거나 기타 유용한 이유가 있는 경우에는 DNS가 선호됩니다.

로컬 호스트 파일과 DNS는 서로 다른 우선순위로 관리되므로 충돌이 발생하지 않습니다.

답변3

127.0.0.1 localhostLinux에서는 파일에 최소한 /etc/hosts 해당 IPv6 주소가 있어야 한다고 감히 말할 수 있습니다.로컬 호스트.

단순히 호스트 이름을 숫자 IPv4 또는 IPv6 주소로 확인합니다. (a)에 연결하려고 할 때unix.stackexchange.com당신 근처에 있지 않을 수도 있는 지구상 어딘가, 또는 (b)이노시톨홈 LAN에는 /etc/hosts호스트 확인을 수행하는 하나 이상의 도메인 이름 서버(DNS)가 있으므로 다음을 입력할 때unix.stackexchage.com그것이 인간으로서 당신이 관심을 갖는 전부입니다. 기억할 필요가 없습니다.185.53.179.7그것이 컴퓨터가 실제로 알아야 할 전부입니다.

지적한 바와 같이 Linux에서는 /etc/nsswitch호스트 이름 확인 순서가 일반적으로 정의됩니다. 즉, NIS를 확인하기 전에 DNS를 먼저 확인한 다음 파일을 마지막으로 확인하고, /etc/hosts그렇지 않으면 파일을 마지막으로 확인합니다.호스트를 찾을 수 없습니다

주문 확인을 관리하는 방법과 DNS 또는 NIS 서비스를 관리하는 대상/장소/사람은 귀하에게 달려 있습니다. 또는 수정을 통해 모든 것을 재정의할 수 있습니다./etc/ns스위치/etc/hostsDNS나 NIS를 확인하지 않고 확인만 하거나 ...

몇 대의 컴퓨터(예: 2~N)로 구성된 간단한 홈 네트워크의 경우 관리자는 /etc/hosts각 컴퓨터를 편집하여 올바르게 설정할 수 있습니다. 이는 이름 서버나 기타 서비스를 하나의 주요 위치로 설정하는 것보다 쉽습니다. 더 저렴합니다. 호스트 이름을 IP 주소로 확인하는 권한입니다.

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

/etc/hosts기본적으로 Linux 운영 체제에는 일반적으로 호스트 이름 확인에 대한 최종 결정권이 있습니다. Windows XP 및 7에서 해당 파일은 C:\Windows\System32\drivers\etc\lmhosts Windows 8 또는 10에 대해 모르겠습니다.

관련 정보