잘못된 DNS 문제를 해결하려면 resolv.conf 파일을 편집해야합니까?


35

우분투 컴퓨터가 잘못된 DNS 서버를 사용한다는 문제가 있습니다. 어떤 이유로 기기 localhost가 DNS 정보를 쿼리 합니다.

네트워크 설정 GUI에서 DNS 서버를 추가했지만 /etc/resolv.conf여전히 127.0.0.1DNS 서버 주소로 포함되어 있습니다 . 이제 파일을 직접 편집 할 수 있다고 생각했지만 직접 파일을 편집해서는 안됩니다.

이제 네트워크 설정 GUI가 올바른 설정으로 파일을 생성하지 않았으므로 resolv.conf직접 새 파일을 생성하려면 어떻게해야 합니까?


1
Ubuntu Server 12.04 LTS를 사용하는 경우 레거시 resolv.conf와 같이 /etc/resolvconf/resolv.conf.d/head를 직접 편집하고 직접 편집 하십시오. 나는 무차별 대결을 할 때까지 리졸버 문제가 없었습니다.

askubuntu.com/questions/157154/… 관련 질문이있을 수 있습니다.
Ehtesh Choudhury

답변:


40

어떤 답변 중 어느 것도 지금까지 주소를 게시하지 것은 질문자가 갖는 이해하는 데 실패하는 모습이다 nameserver 127.0.0.1에서하는 /etc/resolv.conf로컬 네임 서버가 실행되고 있는지 가정, 올바른 것입니다. 그리고 우분투 12.04 데스크탑에는 기본적으로 로컬 네임 서버, 즉 dnsmasqNetworkManager에 의해 제어되는 프로세스가 실행 됩니다 127.0.0.1. Ubuntu 12.10에서는 수신 주소가로 변경되었습니다 127.0.1.1.

따라서 해결책은로 변경하지 않는 것 resolv.conf입니다. 질문자가 로컬 이름 서버를 사용하려고한다고 가정하면 정확합니다.

이름 서비스가 작동하지 않으면 로컬 이름 서버에 올바른 전달 주소가 제공되지 않거나 다른 네트워킹 문제가있는 것입니다.

질문자는 "네트워크 설정 GUI"를 사용하여 "올바른 설정으로 파일을 생성"하려고 시도했지만 작동하지 않았습니다. 이것이 정확히 무엇을 의미하는지 모르지만 여기에 네임 서버 주소를 입력하여 적시에 끝낼 수 resolv.conf있는 올바른 방법이 있습니다. 질문자가 인터페이스를 구성 NetworkManager하지 않고 사용 하고 있다고 가정합니다 ifup.

대부분의 인터페이스는 DHCP 프로토콜을 사용하여 구성됩니다. 이 경우 로컬 시스템에서 아무것도 구성 할 필요가 없습니다. DHCP 서버는 클라이언트가 사용해야하는 네임 서버 주소를 알고이 정보를 DHCP 클라이언트로 보내고,이 정보를 NetworkManager로 보내고, resolvconf로 보냅니다 resolv.conf. 따라서이 경우에는 구성해야 할 수도있는 DHCP 서버입니다.

로컬 시스템의 네트워크 인터페이스가 정적으로 구성되어 있으면 네트워크 표시기 | 연결 편집 ... | 무선 | myconnection | 편집 ... | IPv4 설정 | 추가 DNS 서버

로컬 네임 서버가 제대로 작동하지 않을 수 있습니다. 이 경우 질문자는 편집해야합니다/etc/NetworkManager/NetworkManager.conf

sudo gedit /etc/NetworkManager/NetworkManager.conf

그리고 라인을 주석 처리

dns=dnsmasq

"[main]"섹션에서. 줄을 주석 처리하려면 줄 #의 시작 부분에 a 를 넣고 파일을 저장하십시오. 그런 다음 네트워크 관리자를 다시 시작하십시오.

sudo restart network-manager

그 후에 resolv.conf127. * 주소 대신 로컬이 아닌 네임 서버 주소가 입력됩니다 .

질문자가 ifupNetworkManager 대신 NetworkManager를 사용하여 네트워크 인터페이스를 구성하는 경우 jmartin2279의 답변 이 정확합니다. jmartin2279가 설명 된 방식으로 / etc / network / interfaces에 네임 서버 주소를 추가해야합니다.

다른 답변 조언 것과는 달리, 일반적으로 당신은해야 하지 추가 nameserver, domain또는 search옵션의 파일에 /etc/resolvconf/resolv.conf.d/. 그 답변에 대한 내 의견을 참조하십시오.


1
"DHCP 서버는 클라이언트가 사용해야하는 네임 서버 주소를 알고 있습니다"— DHCP 서버를 제어 할 수없고 (공용 WiFi 핫스팟을 생각할 때) 사용중인 네임 서버를 재정의하려는 경우를 제외하고 ... 연결 당 동일한 구성 설정 연결하는 각 WiFi 핫스팟마다 계속해서 기반을 두는 것이 해결책이 아닙니다.
Teoh Han Hui

dhclient변경 사항 (tha nameserverline)이 마침내 도착하기 위해 실행 해야하는 것 같습니다 etc/resolv.conf. Xubuntu 14.04의 맞춤형 라이브를 실행 중입니다 (아마 그 이유 일 수 있습니다).
Sopalajo de Arrierez

DNSMasq 비활성화의 단점은 무엇입니까? 물론, 이름 확인과 인터넷은 그렇게 한 후에 제대로 작동하는 것 같습니다.
Sopalajo de Arrierez

bugs.launchpad.net/ubuntu/+source/dnsmasq/+bug/1003842를 참조하십시오 ( 예 : 내 의견 # 60).
jdthood

내 경우 resolv.conf가로 변경 계속 127.0.0.1다른 namerservers을 가진 내 네트워크 관리자에도 불구하고 +하는 dnsmasq 주석되는 + 재부팅 된 +하는 dnsmasq (아직 시작됩니다로) + 네트워크를 다시 시작 사망 : /
일부 사용자

17

ifup을 사용하여 인터페이스를 정적으로 구성하는 경우 / etc / network / interfaces 파일에 추가 할 수 있습니다.

터미널을 열고 다음을 입력하십시오.

sudo gedit /etc/network/interface*

다음과 같이 보일 것입니다 :

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

편집 :

auto eth0
iface eth1 inet static
address 192.168.1.10 
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8

자신의 네트워크 정보를 사용합니다. 이것은 당신이 DNS를 설정할 수 있습니다. 여기에서 여러 DNS 서버를 사용할 수 있습니다.

dns-nameservers 8.8.8.8 8.8.4.4

이 작업을 수행 한 후 실행

ifdown eth0
ifup eth0

"ifup을 사용하여 인터페이스를 정적으로 구성하는 경우 ...."
angelcervera

이것을 테스트 했습니까? ifdown: interface eth0 not configured
Cerin

3
여물통 ssh에 연결되어 있으면 ifdown / ifup을 사용할 수 없습니다. 대신 사용sudo /etc/init.d/networking restart
TD_Nijboer

11

Ubuntu 12.04에서는 resolv.conf 처리가 변경되었습니다.

고유 한 네임 서버 주소를 추가하려면 /etc/resolvconf/resolv.conf.d/ head 파일을 편집하십시오

sudo nano /etc/resolvconf/resolv.conf.d/head

이름 서버를 추가하십시오 (예 : Google open dns)

nameserver 8.8.8.8

파일을 저장하고 실행

sudo resolvconf -u

재부팅이나 다른 것은 없습니다. 네트워크 관리자를 다시 시작해야 할 수도 있습니다.

sudo service network-manager restart

끝난.

당신은 명령으로 테스트 할 수 있습니다

nslookup www.google.com

결과는 다음과 유사해야합니다.

Server: 8.8.8.8
Address: 8.8.8.8#53

4
"nameserver"행을 /etc/resolvconf/resolv.conf.d/head에 추가하면 빠른 해킹으로 작동 할 수 있지만 문제에 대한 올바른 해결책은 아닙니다. 그렇게하면 확인자가 모든 환경에서 해당 네임 서버 주소를 사용하게되고, 사용할 네임 서버는 환경에 따라 달라집니다. 예를 들어, LAN에 연결되어 있다면 (아마 VPN을 통해) LAN에서 개인 이름을 확인할 수 있도록 LAN 이름 서버를 사용하려고합니다. 그리고이 경우 시스템은 로컬 캐싱 네임 서버를 실행하는 것처럼 보이지만 "nameserver 8.8.8.8"을 추가하면이를 무시합니다.
jdthood

@jdthood-문제를 지적했습니다. 솔루션을 제공 할까?
TJ Biddle

@TJ 이미 질문에 대한 답변 인 "resolv.conf 파일을 어떻게 편집합니까?"에 대한 답변을 이미 게시했습니다.
jdthood

1
이것을 권장하지 마십시오. 상기 매우 파일의 맨 위에 "손으로 DO NOT EDIT 본 파일 - 변경 사항이 덮어 쓰기됩니다."
Cerin

/etc/resolv.conf를 편집하면 재부팅시 변경 사항을 수동으로 덮어 쓰지만 /etc/resolvconf/resolv.conf.d/head를 수동으로 편집하면 재부팅시 변경 사항을 수동으로 덮어 쓰지 않지만 다시 할 때 변경 사항을 덮어 씁니다. 경고가있는 resolvconf 설치 가능성이 높습니다.
Ken

1

에 더 많은 항목을 추가하려면 파일을 /etc/resolv.conf만들어 /etc/resolvconf/resolv.conf.d/tail여기에 추가하십시오.

그러나가 /etc/resolv.conf포함되어 있으면 127.0.0.1항목을 추가 /etc/resolvconf/resolv.conf.d/tail해도 아무런 변화가 없습니다. NetworkManager에서 DNS 서버 주소를 정적으로 설정해야이를 수신 대기하는 dnsmasq로 보냅니다 127.0.0.1.

정적 인터페이스의 DNS 구성은 다음 의 적절한 iface 스탠자에 추가 된 “ dns-nameservers”,“ dns-search”및“ dns-domain”항목으로 이동해야합니다 ./etc/network/interfaces

자세한 내용은 이것을 읽으십시오 .

`또한 :

gnome-network-adminDNS를 설정 하는 gui 도구를 설치할 수 있습니다 . 시도 해봐 :

sudo apt-get install gnome-network-admin

3
(1) 아니오, "nameserver"옵션을 /etc/resolvconf/resolv.conf.d/tail에 추가하지 마십시오. (다른 "nameserver"옵션이 우선하기 때문에) 비효율적이며 (정적 인 구성이기 때문에 구성이 네트워크 환경을 반영해야하기 때문에) 차선책입니다. (2) 아니오, gnome-network-admin을 사용하지 마십시오. resolvconf에서 제대로 작동하지 않습니다. 버그 # 60518 ( bugs.launchpad.net/ubuntu/+source/gnome-system-tools/+bug/60518 )을 참조하십시오 .
jdthood
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.