nslookup 결과가 항상 서버 127.0.0.1에서 나오는 이유


11

nslookup이 항상 서버 127.0.0.1 에서 결과를 얻는다는 것이 혼란 스럽습니다.

우분투는 dnsmasq에 의해 로컬 DNS 캐시를 사용하기 때문 입니까? 그러나 나는 그것을 닫고 내 dns 캐시를 플러시 한 다음 방문하지 않은 호스트를 nslookup했는데 출력은 여전히 ​​127.0.0.1입니다.

그것은 나를 매우 혼란스럽게 만듭니다. 누구든지 나를 위해 이것을 설명 할 수 있습니까? 그건 그렇고, 내 DNS 서버는 8.8.8.8로 설정되어 있습니다.

답변:


11

기본적으로 Ubuntu는 실제로 DNS 항목을 Dnsmasq로 캐시합니다. DNS 항목이 캐시에 없으면 Dnsmasq가 조회를 수행하므로 네임 서버를 지정하지 않고 DNS 조회를 수행 할 때 항상 localhost( 127.0.0.1) IP 주소가 표시됩니다.

에서 맨 페이지를 다음과 같이 설명 것 :

Dnsmasq는 DNS 쿼리를 수락하고 소규모 로컬 캐시에서 응답하거나 실제 재귀 DNS 서버로 전달합니다. 전역 DNS에 나타나지 않는 로컬 호스트 이름을 확인할 수 있도록 / etc / hosts의 내용을로드하고 DHCP 구성 호스트에 대한 DNS 쿼리에도 응답합니다.

이 동작은로 수정하고을 /etc/NetworkManager/NetworkManager.conf변경 dns=dnsmasq하여 무시할 수 있습니다. 그런 #dns=dnsmasq다음 네트워크 관리자 서비스 ( sudo service network-manager restart) 를 다시 시작해야합니다 .

자세한 내용은 커뮤니티 설명서맨 페이지를 참조하십시오 .


1
답장을 보내 주셔서 감사합니다. DNS 항목이 캐시에 없을 때 Dnsmasq가 조회를 수행한다는 것을 알지 못했습니다. 고마워요!
47dev47null

이미 dns=dnsmasq줄 이 없으면 어떻게해야합니까 ?
Douglas Gaskell '28

@ DouglasGaskell :이 답변은 구식입니다. 우분투는 systemd-resolved17.04 버전으로 전환되었다고 생각 합니다. 참조 : askubuntu.com/questions/907246/…
Silke

2

확인

고양이 /etc/NetworkManager/NetworkManager.conf

[본관]

plugins = ifupdown, 키 파일

dns = dnsmasq

[ifupdown]

관리 = 거짓

해시 (#) 출력 dns = dnsmasq

파일을 저장하고 네트워킹을 다시 시작하십시오.

로컬 리졸버를 원하지 않으면 다음 절차에 따라 DNSMASQ를 끌 수 있습니다.

/etc/NetworkManager/NetworkManager.conf 파일을 편집해야합니다

gksudo gedit /etc/NetworkManager/NetworkManager.conf

에서 다음 줄을 주석으로 처리하십시오.

dns=dnsmasq

#dns=dnsmasq

파일을 저장하고 종료하십시오

이제 다음 명령을 사용하여 네트워크 관리자가 필요합니다

sudo restart network-manager

참조 : http://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.