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를 로컬 네트워크에 대한 zeroconf 지원을 활성화하는 로컬 "분산형" 래퍼로 래핑하는 것과 함께 제공됩니다. 기본적으로 로컬 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는 /etc/resolv.conf. 그러나 나열된 유일한 네임서버는 127.0.1.1이었기 때문에 docker 네트워킹은 성공하지 못했습니다.

나는 찾았다또 다른 해결책나를 위해 일한 askubuntu에서. 혹시 누군가에게 도움이 될까 해서 상호 참조로 여기에 게시합니다.


NetworkManager는 resolvconf 유틸리티를 통해 주소 127.0.1.1을 resolv.conf에 삽입하는 프로그램입니다. NetworkManager는 로컬 전달 네임서버 역할을 하기 위해 dnsmasq 프로그램의 인스턴스를 시작하도록 구성된 경우에만 해당 주소를 삽입합니다. 해당 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

관련 정보