네트워크 관리자 : nm 업데이트를 중지하는 방법 /etc/resolv.conf


26

네트워크 관리자가 DHCP에서받은 DNS 서버를 내 서버에 추가하는 것을 원하지 않습니다 /etc/resolv.conf.

GUI / Connections / IPV4에서 구성하고 자동 (주소 만) 방법을 선택하면 여전히 DHCP를 통해 수신 된 DNS 서버가 추가됩니다.

연결마다 할 수 있습니까 (특정 ssid?)


"자동 (DHCP) 주소 만"방법을 선택하면 NetworkManager가 해당 연결을 활성화 할 때 resolv.conf를 변경하지 않아야합니다. NetworkAddress가 "주소 만"설정에도 불구하고 실제로 resolv.conf에 주소를 추가하는 경우 NetworkManager에 버그가 있으며 Launchpad를 사용하여 해당 버그를보고해야합니다. NetworkManager가 resolv.conf를 변경하지 못하게하려면 시스템에서 활성화되는 모든 연결 구성에서 "자동 (DHCP) 주소 만"을 선택해야합니다.
jdthood

1
연결의 IPv4 설정에서 GUI를 사용하고 모드에서 "주소 만"을 선택하거나 / etc / NetworkManager / system-connections /에서 해당 연결 파일을 편집하고 ignore-auto를 추가하여 직접 수행 할 수 있습니다. -dns = true [ipv4] 섹션의 행.
사샤 파 체프

답변:


32

Network Manager가 dns-servers를 /etc/resolv.conf파일에 추가하지 못하게하는 한 가지 방법 은 다음과 같습니다.

먼저 nm conf 파일을 엽니 다 /etc/NetworkManager/NetworkManager.conf.

sudo vim /etc/NetworkManager/NetworkManager.conf

그리고 이것을 [main]섹션에 추가 하십시오 :

dns=none

저장하고 종료.


메인 섹션은 [main], 아니[Main]
AB

/etc/resolv.conf일반적으로 심볼릭 링크입니다-불변으로 설정하면 링크의 대상도 불변으로 설정됩니까?
muru

5
이것은 데비안 제시에서 작동하지 않습니다
Dimitri Kopriwa

5
이것은 Ubuntu 18.04
LuizAngioletti

1
나는에 있었다 sudo service network-manager restart의 .conf 파일에 변화가 발효하기 전에.
Chris Moore

3

내가 개인적으로 가장 좋아하는 것은 supersede domain-name-serversin 라인을 사용하는 것입니다 /etc/dhcp/dhclient.conf. dns 액세스 포인트가 무엇을 제공하든 우분투는 항상 dns에 지정된 것을 사용합니다.dhclient.conf

내 파일의 샘플

#send host-name "andare.fugue.com";
send host-name = gethostname();
#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
#send dhcp-lease-time 3600;
#supersede domain-name "fugue.com home.vix.com";
supersede domain-name-servers 208.67.220.220;
#prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
    domain-name, domain-name-servers, domain-search, host-name,
    dhcp6.name-servers, dhcp6.domain-search,
    netbios-name-servers, netbios-scope, interface-mtu,
    rfc3442-classless-static-routes, ntp-servers,
    dhcp6.fqdn, dhcp6.sntp-servers;
#require subnet-mask, domain-name-servers;

설명에 따라 (서버 8.8.8.8 사용) 줄을 만드는 것은 Ubuntu 18.04에서 작동하지 않습니다.
LuizAngioletti

3
@LuizAngioletti 18.04는이라고하는 다른 유형의 네트워크 관리자 응용 프로그램을 사용하고 netplan있습니다. 이 답변은 18.04 이전 릴리스 용으로 작성되었습니다. 그래도 나중에 업데이트 할 수 있습니다.
Sergiy Kolodyazhnyy

2

/etc/resolv.conf에 연결되어 /run/resolvconf/resolv.conf있습니다. NetworkManager는 /etc/resolv.conf를 직접 업데이트하지 않습니다 (/run/resolvconf/resolv.conf 만 업데이트). 그래서:

  • 심볼릭 링크 제거 ( rm /etc/resolv.conf)
  • 당신의 자신의 버전을 작성 /etc/resolv.conf

1
나는 이것이 우분투 포럼이라는 것을 알고 있지만 centos를 인터넷 검색하는 동안 이것은 여전히 ​​첫 번째 Google 검색 결과이므로 향후 centos googlers에 대한 의견을 게시합니다. 이것은 centos에서 내 문제를 해결하지 못했습니다. centos 네트워크 관리자가 /etc/resolv.conf에서 직접 작업중인 것 같습니다.
Tommy

이것은 데비안 스트레치에게는 가장 사실이 아닙니다. 파일을 제거하고 다른 심볼릭 링크로 바꿉니다. 매우 성가신.
HörmannHH

여기서 사용 (가상화) 페도 25 일이다 nmcli:에서 /etc/sysconfig/network-scripts/ifcfg-ens3우리가 볼 PEERDNS=yes수단 (이 경우, 잘못된) DNS 정보가 DHCP에 의해 수득되는, 그것은에서 끝난다 /etc/resolv.conf. 이름 서버로 127.0.0.1을 원합니다. 인터페이스 구성 파일에서 nmcli con mod ens3 ipf4.ignore-auto.dns yes결과가 실행 PEERDNS=no됩니다. 그러나 /etc/resolv.conf여전히 길 잃은 namseserver항목이 있으므로 연결을 다시 시작해야합니다 nmcli con down ens3; nmcli con up ens3. 참조 : certdepot.net/rhel7-configure-ipv4- 주소
David Tonhofer

Ubuntu 18.04에서 'service network-manager restart'를 다시 시작하면 NM이 /etc/resolv.conf 파일이 하드 링크이고 심볼릭 링크가 아닌 경우에도 덮어 씁니다.
LuizAngioletti

0

데비안 스트레치에서 내가 한 일 :

  • rm /etc/resolv.conf ### (symlink)
  • /etc/resolv.conf를 터치하십시오.
  • echo "nameserver xxxx">> /etc/resolv.conf

여기서 "xxxx"는 선호하는 DNS 서버 IP 주소입니다 (예 : OpenDNS, Google 또는 Cloudflare).

아이디어 Taha Jahangir에 감사드립니다! 귀하의 제안이 데비안 스트레치 배포판에서 효과가 있음을 확인할 수 있습니다

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