호스트 파일 항목이 있어도 내 이름 확인이 DNS에 충돌하는 이유는 무엇입니까?


15

Ubuntu 10.04.2 LTS Desktop을 실행하고 있습니다. 웹 개발자 인 저는 당연히 내 /etc/hosts파일 에 "me.com"을 만들었습니다 . 불행히도, 내 로컬 호스트 항목을 먼저 확인하기 전에 내 이름 확인이 DNS로 진행되고 있는데 이유를 알 수 없습니다.

결과적으로 내 /etc/resolv.conf nameserver 127.0.0.1가 먼저 거기에 있으면 웹 브라우저에서 me.com (로컬)에서 1 초 이내에 응답을받습니다. 그러나 해당 항목이 없으면 ISP가 약간 느리면 응답 시간이 5 초 정도 걸립니다.

문제는 너무 번거로워서 실제로 해당 항목을에 자동으로 삽입하는 방법에 대한 질문을 여기 (및 누군가가 해결)해야했습니다/etc/resolv.conf . 그러나 여기 (@shellholic) 사용자 중 한 명이이 질문을 제출해야한다고 강력하게 추천했습니다.

/etc/hosts파일 항목 을 누르기 전에 워크 스테이션 이름 확인이 DNS 서버에 먼저 도달해야하는 이유를 알고 있습니까? 지금은 resolv.conf 트릭을 사용하고 있습니다.


1
당신은 찾고 시도 할 수 있습니다 /etc/nsswitch.conf. 내 시스템의 항목은 명확하지 않지만 files옵션 으로 만 조회를 테스트 하여 차이가 있는지 확인할 수 있습니다.
— belacqua

예, 우리는의 출력을 줄 수 cat /etc/nsswitch.conf와 cat /etc/host.conf? 또한 : 핑, 브라우저, 패킷 스니핑 등을 통해 어떻게 테스트합니까?
— 준비

@arrange 버전을 완료하려면의 결과를 첨부 할 수 있습니다 time getent hosts me.com; hostname --fqdn; grep 'me.com' /etc/hosts; grep hosts /etc/nsswitch.conf; netstat -uln | grep ':53'; cat /etc/host.conf; wc -l /etc/hosts. 합리성을 모호하게 망설이지 마십시오.
— shellholic

@shellholic ^ rationality ^ 합리적으로? ㅎ
— belacqua

@jgbelacqua : 실제로
— shellholic

답변:


15

이 파일 /etc/nsswitch.conf을 사용하면 이름 확인 순서를 재구성 할 수 있습니다. 기본적으로 호스트 파일은 첫 번째 파일이고 구성된 DNS입니다. 더 많은 옵션이있을 수 있습니다.

이 파일 /etc/hosts에는 IP 주소와 호스트 이름 만 표시됩니다 (원하는 경우 하나의 IP에 대한 여러 이름)

이 파일 /etc/resolv.conf은 기본 검색 도메인을 나열하고 사용할 네임 서버를 순서대로 나열합니다.


4
또한 Linux 상자의 응용 프로그램이나 서비스에서 이름을 확인한 후에는 TTL (Time To Live) 기간 동안 캐시에 남아 있습니다. 따라서 해결 순서를 전환하면 시스템을 다시 시작하거나 캐시를 지우는 것이 좋습니다.
— jfmessier

'캐시'를 어떻게 지우나요?
— Eric Johnson

확실하지 않지만 ifup 및 ifdown 명령으로 네트워크 연결을 다시 시작하면 가능합니다. 물론 재부팅하면 캐시가 지워 져야하지만 Linux를 사용하고 있습니다.
— jfmessier

nscd이름 확인 쿼리를 캐시 할 수 있지만 ttl을 고려하지 않습니다 (따라서 호스트 캐싱은 기본적으로 비활성화되어 있음). systemd-resolved또한 항목을 캐시합니다. 이들 중 아무것도 구성되지 않은 경우 Linux 호스트는 DNS 응답을 캐시하지 않습니다 . (브라우저는 아마도 응용 프로그램 계층에서 할 수 있습니다)
— Gert van den Berg
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.