현재 데비안 설치에는 몇 가지 심각한 버그가 있습니다. 대부분의 프로그램(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
다르게 작동하는 이유는 무엇입니까 ?nslookup
dig
답변1
nslookup
, dig
및 host
은 DNS 이름 서버를 쿼리하는 데 사용되는 도구입니다.
구성이 이름 서버에서 제공되지 않는 경우(참고자료에 제공됨 /etc/hosts
) 이러한 도구는 이름 서버에 직접 요청하기 때문에 해당 구성을 표시하지 않습니다.
"일반적인" 해상도가 유효한지(예: 에 지정된 방식) 확인하려면 다음을 /etc/nsswitch.conf
사용할 수 있습니다 getent
.
getent hosts www.winaproduct.com
답변2
구성구속되지 않음패키지(현재 Linux에는 기본적으로 설치됨)를 설치하거나 Windows에 설치합니다. 그런 다음 확인자는 모든 DNS 쿼리를 처리하기 위해 이 작고 가벼운 서비스를 찾습니다.구속되지 않음항목 /etc/hosts
을 읽고 확인자 DNS 캐시로 가져옵니다.
그 밖의 모든 경우에는 시스템의 DNS 쿼리를 컴퓨터의 업스트림 DNS 서버로 프록시합니다.
이제 , DNS와 dig
같은 DNS 도구뿐만 아니라 모든 애플리케이션이 로컬 파일로부터 응답을 받을 수 있습니다 .host
nslookup
/etc/hosts
Linux의 대안으로 다음을 사용할 수 있습니다.DNSmasq그러나 마지막으로 확인했을 때 Windows에는 아직 설치되지 않았습니다.