Dhclient가 /etc/resolv.conf를 업데이트하지 않았습니다.

Dhclient가 /etc/resolv.conf를 업데이트하지 않았습니다.

Linux Mint에서 파일을 보면 /etc/resolv.conf첫 번째 주석에 /etc/resolv.conf해당 파일이 resolvconf(8).

~ $ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)

resolvconf(8)매뉴얼 페이지를 설명하십시오 :

resolvconf 프로그램은 dhclient와 같은 DHCP 클라이언트에 의해 실행됩니다.

난 달린다 dhclient wlan0.

~ $ dhclient wlan0

resolvconfDhclient는 프로그램이 업데이트되도록 해야 합니다 /etc/resolv.conf. 이 /var/lib/dhcp/dhclient.leases파일은 네임서버의 IP 주소(192.168.0.6)를 임대할 수 있는지 확인합니다.

~ $ cat /var/lib/dhcp/dhclient.leases 
lease {
  interface "wlan0";
  . . .
  option domain-name-servers 192.168.0.6;
  . . .
}

그러나 /etc/resolv.conf파일은 업데이트되지 않습니다. 파일 /etc/resolv.conf의 이름 서버는 127.0.1.1입니다.

~ $ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1
search software.eng.apl

에 나열된 네임서버가 없습니다 /etc/network/interfaces.

~ $ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

/etc/resolv.confDHCP 서버에서 임대한 네임서버를 사용하여 파일을 업데이트하려면 여기서 무엇을 놓치고 있는지 잘 모르겠습니다 . DHCP 서버는 DHCPD를 사용하는 Linux CentOS 컴퓨터입니다.

답변1

기본적으로 Mint 및 기타 최신 배포판과 함께 제공되는 이 제품은 mdns기본 "분산" 래퍼를 사용하여 일반 공용 DNS를 래핑하여 로컬 네트워크에 대한 구성이 필요 없는 지원을 제공합니다. 기본적으로 로컬 DNS 서버는 로컬 네트워크에서 발견한 이름을 확인한 다음 공용 인터넷 확인, 즉 로컬 네트워크 외부의 이름을 위해 (현재 프록시된) 공용 DNS로 대체합니다.

전체적으로 귀하의 접근 방식 resolv.conf은 올바르고 이 상황에 적합합니다. mdnsISP의 이름 서버에 액세스하는 데 문제가 있는 경우 내부를 살펴봐야 합니다.그것은구성 - 물론 Zeroconf 지원에 관심이 없다면 비활성화 mdns(그리고 Avahi도 가능)하면 resolv.conf전통적인 방식으로 관리할 수 있습니다.

예를 들어 참조하십시오.https://help.ubuntu.com/community/HowToZeroconf

답변2

/etc/dhcp/dhclient.conf 주석을 제거하여 이 줄을 편집 할 수 있습니다 .#prepend domain-name-server

답변3

OP에 설명된 것과 동일한 문제가 있지만 이전 답변 중 어느 것도 나에게 도움이 되지 않았습니다. 저는 Linux Mint 18을 실행 중이고 Docker 컨테이너 내에서 네트워킹 기능을 사용하려고 할 때 이 문제를 발견했습니다. Docker는 .에서 docker 네트워크를 예상 /etc/resolv.conf하지만 나열된 유일한 이름 서버는 127.0.1.1이므로 docker 네트워크는 성공하지 못합니다.

내가 찾은또 다른 솔루션Askubuntu는 나를 위해 일했습니다. 혹시 누군가에게 도움이 될까 해서 상호 참조로 여기에 게시합니다.


NetworkManager는 resolvconf 유틸리티를 통해 주소 127.0.1.1을 resolv.conf에 삽입하는 프로그램입니다. NetworkManager는 로컬 전달 이름 서버 역할을 하기 위해 dnsmasq 프로그램의 인스턴스를 시작하도록 NetworkManager가 구성된 경우에만 이 주소를 삽입합니다. 이 dnsmasq 인스턴스는 주소 127.0.1.1에서 쿼리를 수신합니다.

로컬 전달 이름 서버를 사용하지 않으려면 dnsmasq 인스턴스를 시작하지 않고 주소를 삽입하지 않도록 NetworkManager를 구성하세요. /etc/NetworkManager/NetworkManager.conf이 줄을 주석 처리하세요.dns=dnsmasq

sudo vim /etc/NetworkManager/NetworkManager.conf

[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq

NetworkManager 서비스를 다시 시작하세요.

sudo service network-manager restart

이 모드에서 NetworkManager는 NetworkManager가 활성 연결에 사용하는 이름 서버 주소를 포함하도록 /etc/resolv.conf(여전히 resolvconf를 통해)를 업데이트합니다.

resolv.conf 업데이트를 위한 resolvconf 메커니즘을 비활성화하고 정적 resolv.conf 파일만 사용하려면 다음을 수행하십시오.

sudo rm -f /etc/resolv.conf  # Delete the symbolic link
sudo vim /etc/resolv.conf   # Create static file

관련 정보