파일 /etc/hosts
과 DNS가 함께 작동하지 않습니다. 독립적 인 이름 확인 (네트워크 이름)을 제공합니다.
그들을 연결하는 접착제는 리눅스 시스템 내부 /etc/nsswitch.conf
에 있습니다 . 에서 /etc/netsvc.conf
AIX 서버에 대한 시스템에서 윈도우 와는 나열 될 수있다 lookupd -configuration
: (유사에 LookupOrder 검색, Cache FF DNS NI DS
맥 OS 시스템에서).
각 이름 확인 서비스가 다른 수준의 확인을 조사 할 수 있기 때문에 실제 순서는 복잡해지고 일반적으로 복잡합니다. 마찬가지로 dnsmasq
(일반적으로 가벼운 DNS 서버 127.0.0.1:53
, 또는 ::1:53
(또는 둘 다)) 일반적으로는 읽고 포함 /etc/hosts
파일의 내용을. 또는 (와 같이 systemd.resolver
점이없는 이름 만 확인해야하는 기본 확인자 )는 일부 조건에서 mycomputer
점으로 구분 된 이름 ( mycomputer.here.dev.
)에 대한 DNS 확인을 직접 호출 합니다.
일반적으로 서비스는 순서대로 호출되며 실패하지 않은 첫 번째 서비스가 우선하며 올바른 주소로 승인됩니다. 일반적인 기본 순서는 /etc/hosts
(파일), mDNS (점으로 구분되지 않은 이름), DNS, NIS, NIS +, LDAP입니다. 일부 리눅스 시스템 에서는 서비스 의 컴퓨터 에 대한 최후의 해결책 이 있습니다 hostname
.myhostname
예를 들어,이 시스템에서 (에서 cat /etc/nsswitch
) :
hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
아주 오래된 (glibc 2.4 이하) order
항목은 다음과/etc/host.conf
같이 설정 됩니다.
order hosts,bind,nis
파일 (파일 /etc/hosts
) 이름 서비스 에만 적용하십시오 .
NIS 및 LDAP와 관련된이 (리눅스) 클라이언트 컴퓨터에 미치는 영향은 일반적으로 사용되는 DNS 서버 (바인드, 언 바운드 등)에 의해 제어됩니다.
그래서:
- / etc / hosts에서 호스트 이름을 확인할 수있는 경우 DNS가 / etc / hosts 뒤에 적용되어 호스트 이름을 확인하거나 / etc / hosts의 확인 된 IP 주소를 "호스트 이름"으로 처리하여 재귀 적으로 해결합니까?
없음
호스트 이름이 해결 될 수있는 경우 /etc/hosts
는가 DNS
(파일이 DNS 이전 인 경우)에는 적용되지 않습니다.
해석 된 IP 주소도 "호스트 이름"으로 취급 되지 않습니다 .
해결 된 주소입니다.
브라우저
브라우저는 모든 방법을 사용하여 이름을 확인합니다 (확인 된 이름의 캐시를 확인한 후). 시스템 제공 방법을 사용하는 경우에만 위에 주어진 순서가 적용됩니다. 브라우저는 다른 프로그램과 마찬가지로 모든 DNS 서버에 직접 연결하도록 선택할 수 있습니다.
시스템 순서가 /etc/hosts
이전 DNS
인 경우 해당 파일의 항목이 DNS
분석 서비스 보다 우선 함을 의미합니다 .
그래서:
- ... / etc / hosts가 호스트 이름을 확인하기 위해 DNS를 재정의한다는 의미입니까?
예 (브라우저가 시스템 제공 해상도를 사용하는 경우).
/etc/hosts
웹 사이트에 연결할 수 없도록 다시 적용 되지 않는 이유는 무엇 입니까?
해당 특정 이름에 대해 브라우저 내부 캐시가 지워지거나 시간 초과 될 때까지만 해당 이름이 브라우저 외부에서 다시 검색됩니다.
브라우저의 이름이 캐시에서 확인되면 브라우저는 다시 사용합니다.
캐시를 지우려면 이것을 사용하십시오 .
또는 브라우저를 닫고 (잠깐 기다렸다가) 브라우저를 다시 시작하십시오.
/etc/hosts
는 로컬로 정의 된 이름 서버를 완전히 무시 합니다. 처음으로 목격하는 것은 매우 혼란 스럽습니다. (Chromium 기반 브라우저를보고 있습니다!)