Ubuntu 13.10 (Saucy)으로 업그레이드 한 후 작동하지 않는 DNS 확인을 수정하는 방법


64

13.10으로 업그레이드 한 후 DNS 확인이 실패합니다. DHCP (LAN)로 얻은 DNS 서버는 사용되지 않는 것 같습니다.

에 추가 nameserver 8.8.8.8하여 일시적으로 문제를 해결할 수 /etc/resolv.conf있습니다. 그러나 인트라넷 호스트는 여전히 확인할 수 없습니다.

네트워크 표시기 에서 연결 정보 메뉴 항목을 클릭하면 기본 DNS 및 보조 DNS가 올바르게 설정됩니다. 그러나 내 컴퓨터는 사용하지 않기로합니다.

그래서 내 질문 :

  • resolv.conf필요한 경우 무엇을 넣어야 합니까?
  • 내 컴퓨터에서 어떤 이름 서버를 쿼리하는지 확인하는 방법
  • 다음으로 볼 곳, DHCP가 수신 한 네임 서버가 사용되지 않는 이유는 무엇입니까?

2
12.04에서 14.04로 업그레이드 할 때도 같은 문제가 발생했습니다.
Tarrasch

6
며칠 전에 16.10으로 업그레이드 한 이후 일상적인 DNS 오류가 발생했습니다.
WindRider

@WindRider도 같은 문제가 있습니다. 아래 dnsmasq의 트릭이 작동하는 것 같습니다.
Suor

Lubuntu 17.04를 새로 설치하는 데 문제가 있었고 필요한 URL을 호스트 파일에 수동으로 추가하여 문제를 해결했습니다. askubuntu.com/a/936972/34298
rubo77

답변:


83

먼저 우분투 12.04 이후 우분투에서 이름 확인이 어떻게 작동하는지에 대해 조금 알아야합니다.

Stéphane Graber는 작년에 이에 관한 정보를 블로그에 올렸 습니다 . 알아야 할 가장 중요한 것은 Ubuntu Server와 Ubuntu Desktop 모두 resolvconf를 사용하여 resolv.conf파일 을 관리한다는 것 입니다. 즉, 더 이상 /etc/resolv.conf직접 편집하지 않아야 합니다. 대신 resolvconf에 올바른 정보를 제공하도록 네트워크 인터페이스 구성 유틸리티를 구성해야합니다. Ubuntu 서버의 경우 네트워크 인터페이스 구성 유틸리티는 ifup 이며 파일로 구성됩니다 /etc/network/interfaces. Ubuntu Desktop의 경우 네트워크 인터페이스 구성 유틸리티는 NetworkManager 입니다. 이것이 당신이 사용하는 것입니다.

NetworkManager는 네트워크 표시기> 연결 편집 을 통해 구성됩니다 . 그러나 DHCP로 구성된 네트워크 인터페이스의 경우 일반적으로 설정을 수동으로 변경할 필요가 없습니다. 일반적으로 (원격) DHCP 서버는 NetworkManager에 로컬 인터페이스의 IP 주소와 사용할 (원격) DNS 네임 서버의 주소를 모두 제공합니다. NetworkManager는 127.0.1.1에서 로컬로 청취하는 전달 이름 서버 인스턴스를 시작합니다. 이 주소 127.0.1.1은 resolvconf로 전송 nameserver 127.0.1.1되며/etc/resolv.conf. NetworkManager는 또한 DHCP 제공 DNS 네임 서버의 (원격) IP 주소를 전달 네임 서버에 제공합니다. 따라서 로컬 시스템에서 실행중인 프로그램은 리졸버에게 호스트 이름을 IP 주소로 변환하도록 요청합니다. 확인자는 127.0.1.1에서 로컬 전달 이름 서버를 쿼리합니다. 전달 이름 서버는 원격 이름 서버에 대해 응답을 수신하고이를 체인으로 다시 보냅니다.

NetworkManager는 D-Bus를 통해 전달 이름 서버 프로세스와 통신합니다. 다음 명령을 실행하여 NetworkManager가 전달 이름 서버에 말한 내용을 볼 수 있습니다.

nmcli dev list iface eth0 | grep IP4.DNS

주석에서 발생하는 업데이트 :
resolvconf는 실제로 심볼릭 링크 인 파일 /run/resolvconf/resolv.conf을 작성합니다 /etc/resolv.conf. /etc/resolv.conf심볼릭 링크가 아닌 경우 링크를 다시 만들어야합니다. 그렇게하려면 당신은 실행할 수 있습니다

sudo dpkg-reconfigure resolvconf

또는

sudo ln -sf /run/resolvconf/resolv.conf /etc/resolv.conf        

이 정보에 대단히 감사합니다. 제 경우에는 명령이 올바른 DNS 서버를 보여줍니다. 그러나 resolf.conf 파일은 업데이트되지 않습니다. 거기에 값을 넣은 타임 스탬프가 있습니다. 따라서 resolvconf가 파일을 쓰지 않는 이유를 찾아야합니다.
Witek

15
Resolvconf는 실제로 /run/resolvconf/resolv.conf 파일을 작성하며 /etc/resolv.conf는 /run/resolvconf/resolv.conf에 대한 심볼릭 링크로 간주됩니다. /etc/resolv.conf를 삭제 한 경우 기호 링크를 삭제했습니다. 기호 링크를 재생성하려면 다음을 수행 sudo dpkg-reconfigure resolvconf하거나 수행 할 수 있습니다.mv /etc/resolv.conf /run/resolvconf/resolv.conf && ln -s ../run/resolvconf/resolv.conf /etc/resolv.conf
jdthood

7
이것은 '수정'을 제외한 모든 것을 가지고 있습니다. 이 문제를 어떻게 해결할 수 있습니까?
Amal Murali

5
수정 프로그램은 sudo dpkg-reconfigure resolvconf답변의 마지막 부분에서 제안한대로 실행될 수 있습니다 .
jdthood

감사합니다!!! 내 시스템에 어떤 일이 일어 났는지 확실하지 않지만 실행하는 sudo dpkg-reconfigure resolveconf것이 훌륭하게 작동 하는 것 같습니다!
meanbunny

49

아래 링크에서 제안 된 변경 사항을 작성했습니다 (dnsmasq 비활성화). 이제 모든 것이 잘 작동합니다! http://www.ubuntugeek.com/how-to-disable-dnsmasq-in-ubuntu-12-04precise.html

열기 /etc/NetworkManager/NetworkManager.conf파일.

sudo gedit /etc/NetworkManager/NetworkManager.conf

다음과 같이 라인을 주석 처리하십시오.

#dnsmasq deactivated
#dns=dnsmasq

4
dnsmasq를 주석 처리 한 후 네트워크 관리자를 다시 시작해야합니다 sudo restart network-manager..
돈 커크비

2
내 경우 (분투)에서 명령은 다음과 같습니다 sudo /etc/init.d/network-manager restart
aviram83

dnsmasq가 설치되어 있지 않고 주석을 달지 않아도 아무 문제가없는 dns=default경우 [main]섹션에 추가 하십시오. NetworkManager에는 다른 불쾌한 dnsmasq 플러그인이 있습니다.
dstibbe

1
다시 시작해야합니다 network-managersudo service network-manager restart
Sungam

17.10으로 업그레이드 한 후 내 상자 중 하나에 dns가 없었으며 /etc/resolv.conf가 기호 링크가 아닌 것으로 나타났습니다. 고쳤다. 다른 상자는 업그레이드를 완료하지 못했고 디렉토리에서 .dpkg-new 파일을 찾았습니다. 주요 차이점은 dnsmasq입니다. 그것을 복사하고 데몬을 다시 시작하지 않고 작업
fchen

20

편집 2 : 이전 게시물이 중재에 의해 올바르게 삭제되었습니다. 나는 해결책으로 찾은 것을 게시하고 있습니다. 그 죄송합니다.

편집 : 방금 답을 찾았고 바로이 페이지에 있습니다. 내 miopy에 대해 죄송합니다. 아래에 내 결과를 게시하여이 페이지에서 찾은 Richard Lindstedt의 정답을 확장했습니다. 나는 약간의 맥락을 위해 나의 초기 울림을 남겼다. Richard의 대답을 찬성하십시오. 그는 그럴만 한 가치가 있습니다.

실제로 정말 쉽습니다.

인터페이스 conf 파일을 열고-> sudo vi / etc / network / interfaces

그것은 OP에 도움이되지 않았으며 지금은 도움이되지 않습니다. 우리는 고정 주소를 원하지 않고 DHCP 서버가 우리에게 보내는 주소를 사용하려고합니다. NetworkManager는 그것들을 인식하는 것 같지만 우분투는 그것을 무시합니다.

# nmcli dev list iface wlan0 | grep IP4.DNS
IP4.DNS[1]:          10.*.*.*
IP4.DNS[2]:          10.*.*.*
IP4.DNS[3]:          8.8.8.8

그러나...

# dig microsoft.com
; <<>> DiG 9.9.5-4.3-Ubuntu <<>> microsoft.com
;; global options: cmd
;; connection timed out; no servers could be reached

내 / etc / network / interfaces는 다음과 같습니다.

auto lo
iface lo inet loopback

어느 것이 조금 이상합니다. 모든 인터페이스가 여기에 선언 될 것으로 기대합니다 (또는 뭔가 빠졌습니까?).

간단히 말해 :

  • 나는 시작할 파일을 엉망으로 만들지 않았다.
  • 나는 이미 달렸다 dpkg-reconfigure resolvconf
  • 올바른 심볼릭 링크가 있습니다
  • NetworkManager가 DHCP에서 올바른 DNS 서버를 검색합니다
  • 우분투는 그러한 주소를 사용하지 않습니다
  • 해결 방법은 고정 된 8.8.8.8을 / etc / network / interfaces에 두는 것입니다.
  • 모든 상황에서 DHCP 제공 DNS 서버를 사용하고 싶습니다.

14.14에있는 것을 제외하고는 정확한 문제이기 때문에 다른 스레드를 열지 않습니다 (그러나 이것은 12.10에서 13.04로 업그레이드 한 이후 나에게 잔소리가 있습니다).

해결책

그 마지막 구절이 제게 올바른 길을 갔고 그때만 리차드의 대답을 알았습니다.

문제는 충돌 dnsmasqresolvconf패키지 와 관련이있는 것 같습니다 . 12.10까지 dnsmasq사용되었습니다. 이후 13.04에서 우분투는 패키지를 설치하셨습니까하는 dnsmasq / resolvconf 하이브리드로 전환 듯 dnsmasq-base하고 resolvconf있지만, dnsmasq그 자체.

13.04 또는 그 밖의 업그레이드 스크립트에서 버그인지 여부는 말할 수 없습니다. (새로 설치할 때와 같이) 업그레이드시 resolvconf가 설치되고 dnsmasq-base가 업그레이드되고 dnsmasq가 (올바르게) 제거되기 때문입니다.

문제는 업그레이드 스크립트가의 dns=dnsmasq행 을 주석 처리하지 못하는 것 입니다 /etc/NetworkManager/NetworkManager.conf. 따라서 dnsmasq 데몬이 시스템에 더 이상 존재하지 않더라도 /etc/resolv.conf는 여전히 그렇습니다.


이것은 정말 대단합니다!
metadings

1
OMG 이렇게하면 지난 3 년간 DNS 문제가 해결되었습니다. 당신이있는 경우 dnsmasqdnsmasq-base설치, NM은 넣어 127.0.0.1에서 /etc/resolv.conf대신 127.0.1.1. 나는 단순히 dnsmasqNM을 제거 하고 활성화했으며 모든 것이 잘 작동합니다.
user1129682

4
향후 Google 직원은 sudo service network-manager restart이 기능을 적용해야합니다.
timelmer

서비스 네트워크 관리자를 다시 시작하는 것이 좋습니다!
Henrique

7

실제로 정말 쉽습니다.

인터페이스 conf 파일을 열고-> sudo vi / etc / network / interfaces

인터페이스 (아마도 eth0) 아래에 모든 일반적인 구성이 표시됩니다.

address 192.168.22.71
netmask 255.255.255.0
gateway 192.168.22.1

게이트웨이 후에 'dns-nameservers 8.8.8.8 8.8.8.9'또는 사용할 네임 서버를 추가하십시오.

따라서 구성은 다음과 같아야합니다.

address 192.168.22.71
netmask 255.255.255.0
gateway 192.168.22.1
dns-nameservers 8.8.8.8 8.8.8.9

그런 다음 '스도 서비스 네트워킹 다시 시작'을 수행하면 좋습니다.

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