nslookup, dig, firefox는 /etc/hosts 파일 항목을 무시합니다.

nslookup, dig, firefox는 /etc/hosts 파일 항목을 무시합니다.

현재 데비안 설치에는 몇 가지 심각한 버그가 있습니다. 대부분의 프로그램(firefox, nslookup, dig 등)은 /etc/hosts파일의 항목을 무시합니다. 저는 실제로 이 파일을 사용하여 광고를 차단합니다.

한 가지 예

/etc/hosts파일의 줄

127.0.0.1 www.winaproduct.com

이렇게 하면 dig +short www.winaproduct.com. 대신 서버의 해당 IP 주소가 반환됩니다 127.0.0.1.

Firefox에서 열면 www.winaproduct.com해당 웹사이트가 표시되지만 이는 예상되지 않습니다.

ping하지만 busybox nslookup, 등은 문제가 되지 않습니다 busybox ping.resolveip

그렇다면 문제는 무엇입니까? 이 문제를 어떻게 해결하나요? 문제는 DNS 확인 라이브러리에 있다고 생각합니다.

에 대한 임시 수정, 설정 dnsmasq및 변경 사항 nameserver입니다.127.0.0.1/etc/resolv.conf

고쳐 쓰다

libnss3종속성으로 설치한 후 문제가 마술처럼 해결되었습니다.google-chrome

기본 /etc/nsswitch.conf는 다음과 같습니다.hosts: files dns

DNS를 직접 요청하는 대신 /etc/hosts 파일을 먼저 요청하도록 어떻게 nslookup지시 합니까 ?dig

그런데 busybox nslookup, 등이 wget, 등과 resolveip다르게 작동하는 이유는 무엇입니까 ?nslookupdig

답변1

nslookup, dighost은 DNS 이름 서버를 쿼리하는 데 사용되는 도구입니다.

구성이 이름 서버에서 제공되지 않는 경우(참고자료에 제공됨 /etc/hosts) 이러한 도구는 이름 서버에 직접 요청하기 때문에 해당 구성을 표시하지 않습니다.

"일반적인" 해상도가 유효한지(예: 에 지정된 방식) 확인하려면 다음을 /etc/nsswitch.conf사용할 수 있습니다 getent.

getent hosts www.winaproduct.com

답변2

구성구속되지 않음패키지(현재 Linux에는 기본적으로 설치됨)를 설치하거나 Windows에 설치합니다. 그런 다음 확인자는 모든 DNS 쿼리를 처리하기 위해 이 작고 가벼운 서비스를 찾습니다.구속되지 않음항목 /etc/hosts을 읽고 확인자 DNS 캐시로 가져옵니다.

그 밖의 모든 경우에는 시스템의 DNS 쿼리를 컴퓨터의 업스트림 DNS 서버로 프록시합니다.

이제 , DNS와 dig같은 DNS 도구뿐만 아니라 모든 애플리케이션이 로컬 파일로부터 응답을 받을 수 있습니다 .hostnslookup/etc/hosts

Linux의 대안으로 다음을 사용할 수 있습니다.DNSmasq그러나 마지막으로 확인했을 때 Windows에는 아직 설치되지 않았습니다.

관련 정보