resolv.conf를 덮어 쓸 때 DNS를 어떻게 설정합니까?

온라인에서 보는 대부분의 정보는 /etc/resolv.conf를 수정하라는 메시지가 표시되지만 여기에서 변경 한 내용은 모두 무시됩니다. .

$ 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 

127.0.1.1은 dnsmasq의 로컬 인스턴스 인 것 같습니다. dnsmasq 문서는 /etc/resolv.conf를 수정하라고 말합니다. 사용자 지정 네임 서버를 /etc/resolv.conf.d/base에 넣으려고했지만 sudo resolvconf -u

에 변경 사항이 표시되지 않았습니다. .

참고로, 연결별로 DNS를 변경하고 싶지 않습니다. 별도로 지정하지 않은 경우 모든 연결에 사용할 기본 DNS 설정을 지정하고 싶습니다.

업데이트 :

이 질문에 직접 답변했습니다. https://unix.stackexchange.com/a/163506/67024

다음과 같은 이유로 최상의 솔루션이라고 생각합니다.

  1. 작동합니다.
  2. 최소한의 변경 만 필요하며
  3. 이를 우회하는 대신 dnsmasq의 DNS 캐시와 함께 작동합니다.

댓글

  • 질문을 업데이트하는 대신 질문에 더 잘 대답하십시오. 문제에 대한 올바른 대답을 더 쉽게 찾을 수있을 것 같습니다.
  • 대부분의 답변은 우분투 지향적이고 지나치게 복잡한 것 같습니다. NetworkManager 사용자를위한 범용 솔루션은 /etc/NetworkManager/NetworkManager.confdns=none를 추가하는 것입니다 (아래 답변에서 자세한 내용 참조).
  • answer 가 resolve.conf를 덮어 쓰는 이유를 설명하고 구성하는 방법을 알고 있다고 생각합니다.

답변

DNS 네임 서버를 재정의하려면 base 파일 아래에 resolv.conf.d.

$ sudo vim /etc/resolvconf/resolv.conf.d/base 

그런 다음 이름 서버 목록을 그래서 :

nameserver 8.8.8.8 nameserver 8.8.4.4 

마지막으로 업데이트 resolvconf :

$ sudo resolvconf -u 

resolvconf의 man 페이지를 살펴보면 /etc/resolvconf/resolv.conf.d/ 아래의 다양한 파일에 대해 설명합니다.

 /etc/resolvconf/resolv.conf.d/base File containing basic resolver information. The lines in this file are included in the resolver configuration file even when no interfaces are configured. /etc/resolvconf/resolv.conf.d/head File to be prepended to the dynamically generated resolver configuration file. Normally this is just a comment line. /etc/resolvconf/resolv.conf.d/tail File to be appended to the dynamically generated resolver configuration file. To append nothing, make this an empty file. This file is a good place to put a resolver options line if one is needed, e.g., options inet6 

head 파일 상단에 “경고가 있더라도 :

이 경고는 이러한 파일이 생성 될 때 궁극적으로 이러한 파일이 생성되는 결과 resolv.conf 파일로 작동하도록하기위한 것입니다. 만드는 데 사용됩니다. 따라서 base 파일에 대해 위에서 설명한 nameserver 줄을 파일도 있습니다.

참조

댓글

  • Ubuntu 14.04-네임 서버를 base에 넣고 resolvconf -u를 실행하면 네임 서버가 resolv.conf에 넣지 아니라 -네임 서버를 head에 넣었을 때
  • Ubuntu 14.04-또한 주석 처리해야했습니다. /run/resolvconf/interface/NetworkManager
  • 에 설정된 구성

  • 유형 nslookup google.com 및 목록의 첫 번째 IP가 새 네임 서버 여야합니다. , 잘못했습니다.
  • Ubuntu 16.04 : /etc/resolvconf/resolv.conf.d/head에만 추가 된 경우에만 작동하며 . nslookup google.com로 확인했습니다.
  • 처음에는 resolvconf가 설치되어 있어야합니다. sudo apt-get install resolvconf를 수행하여 설치할 수 있습니다.

Answer

이 질문에 관심이 있으며 @sim 제안 솔루션을 시도했습니다.

테스트를 위해

nameserver 8.8.8.8 

div id = “581739f61b”>

nameserver 8.8.4.4 

in /etc/resolvconf/resolv.conf.d/head

그런 다음

sudo service network-manager restart 

결과는 /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 8.8.4.4 nameserver 127.0.1.1 

nm-tool는 dnsserver가

DNS: 208.67.222.222 DNS: 208.67.220.220 

임을 나타냅니다. 내 라우터에서 제공하는 것입니다. 반면에 주소를 파는 것은

;; Query time: 28 msec ;; SERVER: 8.8.4.4#53(8.8.4.4) 

내가 옳다면이 모든 것으로부터 결론을 내립니다

  1. “head”부분은 resolvonf에서 읽습니다. “base”부분은 dnsmasq에 의해 어떻게 든 제어됩니다.
  2. dnsserver는 실제로 dhcp에서 제공하는 서버에 관계없이 8.8.4.4로 강제 실행되지만 제공된 캐싱을 잃게됩니다. 요청이 항상 8.8.4.4로 전송되기 때문에 dnsmasq에 의해
  3. dnsmasq는 여전히 dhcp에서 제공하는 dnsserver 만 사용하고 있습니다.

모두 작동하지만 저는 의도 한 결과라고 생각하지 마십시오.더 가까운 해결책은 다음과 같습니다. 수정

sudo vim /etc/dhcp/dhclient.conf 

추가

supersede domain-name-servers 8.8.8.8; 

결과는 다음과 같습니다. resolv.conf 127.0.0.1 만 포함합니다. 즉, dnsmasq 캐시가 호출되고 nm-tool은

DNS: 8.8.8.8 

라고 말합니다. 이는 검색된 이름이 캐시에 없다는 것을 의미합니다. , 그런 다음 dhcp에서 제공하는 서버가 아닌 8.8.8.8에서 요청됩니다.

또 다른 옵션은 “supersede”대신 “prepend”를 사용하는 것입니다. 이름이 8.8.8.8로 확인되지 않으면 요청이 다른 서버로 대체됩니다. 실제로 nm-tool은

DNS: 8.8.8.8 DNS: 208.67.222.222 DNS: 208.67.220.220 

댓글

  • NS 구성. 특히 DHCP가 제공하는 서버 앞에 서버를 추가하는 옵션. 새로운 문제를 만들지 않고 문제를 해결하는 완벽한 균형 인 것 같습니다!
  • nm-tool이 nmcli로 대체되었습니다.

답변

dnsmasq에서 사용하는 네임 서버를 변경할 수 있음을 발견했습니다. /etc/dnsmasq.conf에 다음 줄을 추가하여 :

server=8.8.8.8 server=8.8.4.4 

파일은 dnsmasq 패키지에 의해 설치되지만 Ubuntu는 dnsmasq-base 만 제공합니다. sudo apt-get install dnsmasq를 실행 한 다음 /etc/dnsmasq.conf, sudo service dnsmasq restart 및 .

sudo tail -n 200 /var/log/syslog를 실행하여 시스템 로그를 확인하고 dnsmasq가 내가 지정한 네임 서버 :

Oct 21 23:00:54 mylaptop dnsmasq[8611]: using nameserver 8.8.8.8#53 Oct 21 23:00:54 mylaptop dnsmasq[8611]: using nameserver 8.8.4.4#53 

댓글

  • 최고로 표시되는 이유가 있습니다. 대답 … 진짜이기 때문에! 매우 감사합니다! 언급 한 모든 단계를 마친 후 모든 것이 원활하게 작동하려면 네트워크를 다시 시작해야 할 수 있습니다 (나를위한 것이 었습니다 …. sudo service network-manager restart)
  • Ubuntu 14.04 서버에서는 콜드 부팅이 URL을 사용하여 인터넷에 연결되지 않지만 IP 주소는 작동하는 시간의 절반 정도입니다. 나는 그것을 고치려고 많은 시간을 보냈고 몇 달 동안 포기한 다음이 해결책을 찾았습니다. 저도 이것이 최선의 답이라고 생각합니다.
  • dnsmasq를 설치해야한다는 점이 ‘ 흥미 롭습니다. 이것은 실제로 정상적인 상황에서 내 DNS를 고쳤지만 내 VPN 구성을 완전히 망가 뜨 렸습니다 (VPN 연결이 이제 실패합니다 …)
  • Centos에는 그러한 파일이 없습니다
  • ubuntu 16 : dnsmasq를 사용한 절차의 변경 사항이 /etc/resolv.conf에 전파되지 않습니다. 결과적으로 hat nslookup은 원래 정의 된 localhost 127.0.0.1을 계속 사용합니다. 언급 된 시스템 로그를 확인할 수 있지만

답변

고정 IP 상황의 경우 Ubuntu Server Guide는 다음과 같이 말합니다. 다음과 같이 보일 수있는 / etc / network / interfaces 파일을 변경합니다.

iface eth0 inet static address 192.168.3.3 netmask 255.255.255.0 gateway 192.168.3.1 dns-search example.com dns-nameservers 192.168.3.45 192.168.8.10 

원하는 IP를 192.168.3.45 192.168.8.10으로 변경합니다. , 예 : 8.8.8.8

https://help.ubuntu.com/14.04/serverguide/serverguide.pdf 38 페이지

댓글

  • 확실해 보이지만 이제 resolv.conf를 어떻게 다시 생성합니까?!
  • @JoelBerger ifdown eth0; ifup eth0.
  • Centos에 / etc / network / interfaces 없음

답변

  1. “네트워크 연결”검색

  2. 열기

    여기에 이미지 설명 입력

  3. 그런 다음 WiFi 또는 이더넷 또는 사용중인 것을 선택하고 편집을 클릭하십시오. 다음과 같이 표시됩니다.

    여기에 이미지 설명 입력

  4. 탭에서 ipv4 선택

  5. 방법에서만 주소 선택

  6. 아래에 DNS 이름을 입력하고 저장

  7. 완료

댓글

  • I ‘하지만 각 네트워크 연결에 대해이 작업을 수행해야합니다. 과거에는 모든 연결의 기본값을 변경할 수 있었는데, 이것이 제가 여기서하고자했던 것입니다.
  • 사랑합니다! 이 UI 설정은 sudo 및 vim 엉망에서 내 엉덩이를 저장했습니다. ‘ (
  • Mint 사용 (Ubuntu 14.04에서)-그러나 KDE에서도 이것을 보았습니다. 이유는 GUI 네트워크 관리자에서 DNS 서버를 설정하면 ‘ 터미널에서 사용되는 DNS 설정에 영향을주지 않습니다.
  • 최고의 대답 imho. Ubuntu 14.04에서는 2 개의 외부가 있습니다. 내 홈 네트워크 내부의 클라이언트를 인식하지 못하는 ‘ DNS의 IP 주소. ‘ 자동 (DHCP) ‘ 기존 목록에 내 라우터 ‘의 IP 주소를 추가했습니다 .wlan0을 통한 무선 연결의 경우 ‘ 작동하지 않았지만 ‘ 자동 (DHCP) 주소 만 ‘ 외부 주소를 라우터 IP로 대체 했는데 그 역시 작동했습니다. sudo service network-manager restart로 변경 사항을 적용하고 잠시 기다린 다음 nmcli d list | grep 'DNS\|IP-IFACE'로 확인하세요. 내부 클라이언트를 이름으로 ping합니다.
  • 정답입니다.

답변

아직 언급되지 않은 빠르고 더러운 해결 방법은 resolv.conf 파일을 편집 한 직후에 변경 불가능 플래그를 설정하는 것입니다.

$ sudo nano /etc/resolv.conf 

추가하고 저장 :

nameserver 8.8.8.8 

그런 다음 :

$ sudo chattr +i /etc/resolv.conf 

그것이 트릭입니다. 저도이 작업을 제 시스템에서 수행합니다.

댓글

  • 솔루션이 chattr과 관련 될 때마다 ‘는 실제로 해결책이 아닙니다.
  • 이것은 어떤 이유로 DNS를 일시적으로 변경해야하는 시스템에서 수행하는 작업입니다. ‘ 구성을 수정하고 싶지 않습니다. 영구 솔루션으로 ‘ 권장하지 않습니다.
  • ” 빠르고 더러운 해결 방법 ”
  • 이것은 ‘ 더티가 아닙니다. 프로그램 더 잘 알고 있다고 생각하기 때문에 로컬 구성을 파괴합니다.

답변

내 문제는 조금 달랐습니다. , 라우터 DNS 서버를 재정의하고 싶었습니다. Ubuntu에서 다음 링크를 찾았습니다. https://wiki.ubuntu.com/OverrideDNSServers

내용 : 원하는 경우 DHCP 서버에서 제공 한 DNS 설정을 재정의하고

/etc/dhcp3/dhclient.conf 

를 열고 다음 줄을 추가합니다.

supersede domain-name-servers <dns_ip_address1>,<dns_ip_address2>; 

<dns_ip_address*> 항목을 적절한 콘텐츠로 바꿉니다.

댓글

  • 내 문제를 해결 한 답변입니다.
  • 완벽합니다. 변경 사항을 적용하려면 서비스 네트워킹 재시작을 sudo해야한다고 추가하면됩니다.
  • dhcp3 폴더? Xubuntu 17.10이 있습니다. 간단히 /etc/dhcp로 이동 했습니까?
  • @PlasmaBinturong 제 경우에는 /etc/dhcp/dhclient.conf 최신 Debian 및 Ubuntu 버전

답변

dns-nameservers XXX.XXX.XXX.X/etc/networking/interfaces 파일에 추가합니다.

댓글

  • 비추천 할 때 댓글을 남겨주세요. 이는 38 페이지 매뉴얼 에 제공된 방법입니다.
  • 언급되지 않은 매뉴얼은 모든 IP를 한 줄에 표시합니다. 이 대답은 줄을 추가하는 것을 제안하는 것 같습니다. 그리고 마지막 숫자의 너비가 1X 인 이유는 무엇입니까? 저는 대부분 비공식적이고 불확실한 짧은 채팅 스타일의 글인 @Zook이 반대표를 얻었습니다.

답변

어쩌면 누락 된 것이있을 수 있지만 https://help.ubuntu.com/14.04/serverguide/network-configuration.html 의 구성 지침에 따르면 다음을 업데이트합니다. 프록시를 실행하지 않습니다. 방화벽과 로컬 DNS 뒤에있는 시스템 (예 : Google이 표시되지만 필요한 항목으로 설정) 만 있습니다.

nano /etc/network/interfaces 

기본값 :

# This file... # and how to activate... # The loopback... auto local iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp 

업데이트 :

# This file... # and how to activate... # The loopback... auto local iface lo inet loopback # The primary network interface #iface eth0 inet dhcp iface eth0 inet static address x.x.x.x netmask 255.255.255.0 gateway x.x.x.x #nameservers # you may not need dns-search # I use it because I"m running this on a Windows network # so its useful to have # dns-search x.y dns-nameservers 4.4.4.4 8.8.8.8 

가능한 경우 재부팅합니다.

답변

여기에있는 일부 답변은 잘 작동합니다.하지만 수동으로 진행해야한다는 사실이 마음에 들지 않았습니다. “적절한”DNS를 설정하기위한 구성 파일은 ady NetworkManagerDHCP를 통해 수신하고 있습니다.

조금 파헤쳐 본 결과 /etc/resolv.conf 파일이 실제로 링크이고 /run/systemd/resolve/stub-resolv.conf. 몇 가지 실험 결과 /run/systemd/resolve/ 디렉토리에 iv id를 통해받은 설정이 이미 포함 된 resolv.conf라는 이름의 다른 파일이있는 것으로 보입니다. = “8dc6b8973a”>

. 따라서/etc/에서 구성 파일을 수동으로 덮어 쓰거나 만들지 않고/etc/resolv.conf를 다시 연결하여/run/systemd/resolve/resolv.conf파일과 모두 정상이어야합니다.

# sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf 

이제 네트워크에서도 설정을 편집 할 수 있습니다. 그놈의 매니저. 🙂

이전 우분투에서 작동하는지 확실하지 않지만 Ubuntu 17.10에서는 작동합니다.

댓글

  • systemd-resolve --flush-cache를 실행하면 원래 링크 된 파일이 분명히 끊어지고 위의 답변이 복원됩니다. 원래 기능

답변

5 월 6 일 수정, 2016

/etc/Network-Manager/system-connections/ 디렉토리에서 시스템 연결에 대한 모든 설정을 업데이트하는 스크립트를 작성했습니다. 개별 연결을 편집하는 데 사용하는 GUI, 해당 디렉토리의 특정 파일을 편집합니다. 스크립트는 모든 파일을 업데이트합니다. 스크립트는 grep으로 dns가 설정되지 않은 사용자를 검색하고 awk로 설정합니다.

해당 파일에 액세스하려면 sudo 액세스가 필요하므로 sudo로이 스크립트를 실행 한 다음 네트워크 관리자를 다시 시작하세요.

#!/bin/bash # Author: Serg Kolo # Date: May 6, 2015 # Description: this script checks all settings for connections in # /etc/NetworkManager/system-connections/ , and if there"s no custom # dns set , this script sets it; # NOTE: run sudo service network-manager restart after running this script set -x for file in /etc/NetworkManager/system-connections/* ; do grep "dns=208.67.220.220;" "$file" || ( awk "{print;if ($1=="[ipv4]"){getline; print "method=auto\ndns=208.67.220. 220;\nignore-auto-dns=true"}}" "$file" > .tmpfile && ( cat .tmpfile > "$file") ) done 

스크립트 작동 :

여기에 이미지 설명 입력

원본 게시물 여기에있는 일부 사용자는 DNS가 어떻게 든 dnsmasq에 의해 제어된다는 점을 지적했습니다. 그것은 사실입니다. /etc/resolvconf/resolv.conf.dhead 또는 body를 어떻게 변경 했든간에 다소 작은 문제에 직면했습니다. / div>, 내 컴퓨터는 실제로 도메인 이름으로 인턴 된 액세스에 액세스 할 수 없습니다. IP 주소로만 작동합니다.

제가 한 일은 /etc/NetworkManager/NetworkManager.conf 파일을 수정하는 것입니다. 원래는 dns=dnsmasq라고되어 있었지만 dns=208.67.222.222로 변경했습니다. 이렇게하면 nm-tool에서 208.67.222.222를 언급하지 않지만 IP 주소뿐만 아니라 도메인 이름을 사용할 수있었습니다.

내 방법은 다음과 같습니다. NetworkManager.conf 파일은 다음과 같습니다.

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

참고 : 내 문제와이 솔루션에 대한 자세한 내용은 askubuntu.com 의 게시물을 참조하세요.

업데이트 # 1

오늘 대학에서 집에 돌아와서 집에 WiFi에 연결할 수 없다는 것을 알게되었습니다. 그리고 [main]dns=는 실제로 플러그인을위한 줄이므로 dns=dnsmasq는 실제로 dnsmasq 플러그인을 NetworkManager에 추가하고 있습니다.

그래서 내 솔루션은 내가 예상했던대로 작동하지 않았습니다. 다음은 man 페이지에서 발췌 한 내용입니다.

dns=plugin1,plugin2, ... List DNS plugin names separated by ",". 

DNS 플러그인은 로컬 캐싱 네임 서버 기능을 제공하는 데 사용됩니다. (DNS 쿼리 속도를 높임) 그리고이를 사용하는 애플리케이션에 DNS 데이터를 푸시합니다.

dns=208.67.222.222 기본적으로 NetworkManager가 해당 플러그인을 사용하지 못하도록 막았을 수 있습니다. 그렇지 않으면 로컬 DNS 서버를 사용했을 것입니다 (분명히 작동하지 않음).

Answer

두 가지 메소드가 있습니다.

방법 1

사용할 DNS 서버는 resolv.conf.d

iv id = “57ec694751 아래의 head 파일을 업데이트하여 변경할 수 있습니다. “>

다음 실행

$ sudo resolvconf -u 

위의 경우 일반 resolv.conf 파일이 생성됩니다. /etc 디렉토리에 있습니다. 모든 해결 요청은 위에 언급 된 네임 서버로 전송됩니다. 해결되었습니다.

그러나 이것에 함축 된 의미가 있습니다. resolvconf를 사용하여 주소 확인을 위해 1.1.1.1를 직접 쿼리하면 dnsmasq에서 제공하는 캐싱의 기능이 사라집니다. 모든 요청은 1.1.1.1

방법 2

로 이동합니다.

위와 같은 일이 발생하지 않도록하고 DNS 확인에 dnsmasq를 사용하여 답변입니다. 답변은 여기에 간단히 설명되어 있습니다.

/etc/dnsmasq.conf 파일에 다음 콘텐츠를 추가하세요. .

server = 1.1.1.1

그런 다음 dnsmasq 서비스를 다시 시작합니다.

$ sudo systemctl restart dnsmasq.service 

잘 작동합니다. 해결되었습니다.

답변

손쉬운 DNS 변경 방법 :

$ sudo nano /etc/network/interfaces 

문제가 발생하면 nano :

$ sudo apt-get install nano -y 

그런 다음 ..

  1. 찾기 : dns-nameservers
  2. 찾을 수 없으면 입력 만하면됩니다.
  3. 다음과 같이했습니다. dns-nameservers 199.85.126.10 199.85.127.10

이게 최선의 방법 이었으면 좋겠어요. 그런데 VPS에서 이렇게 했어요.

답변

루트 :

  1. 댓글 dns=dnsmasq on /etc/NetworkManager/NetworkManager.conf
  2. /etc/dhcp/dhclient.conf의 끝에 supersede domain-name-servers 4.2.2.1,4.2.2.3,4.2.2.5,4.2.2.4,4.2.2.1,4.2.2.2; 추가 div>
  3. sudo service network-manager restart

다음은 위와 같이 변경합니다.

$ sudo sed -i "s/dns\x3Ddnsmasq/\x23dns\x3Ddnsmasq/" \ /etc/NetworkManager/NetworkManager.conf $ echo "supersede domain-name-servers 4.2.2.1,4.2.2.3,4.2.2.5,4.2.2.4,4.2.2.1,4.2.2.2;" | \ sudo tee --append /etc/dhcp/dhclient.conf $ sudo service network-manager restart 

다시 시작 프로세스가 완료 될 때까지 7/10 초 동안 기다린 후”nslookup nist.gov “로 구성을 확인하십시오. Ubuntu LTS 14.04에서 잘 작동합니다.

Answer

NB : 대부분의 답변과 마찬가지로 NetworkManager를 사용한다고 가정합니다. . 그러나 대부분의 다른 답변과는 달리 resolvconf, dhclient 또는 다른 어떤 것도 사용한다고 가정하지 않습니다. 하지만 (업데이트 참조).

이 질문의 조회수를 고려할 때이 8 자 솔루션이 아직 게시되지 않았습니다. man NetworkManager.conf,

에 따르면

dns : […] none : NetworkManager가 resolv.conf를 수정하지 않습니다. 이는 rc-manager가 관리되지 않음을 의미합니다.

따라서 추가

dns=none 

/etc/NetworkManager/NetworkManager.conf[main] 섹션에서 NetworkManager를 다시 시작하면

더 이상입니다.

rc-manager=unmanaged 설정은 dns=none와 동일해야합니다. , 그리고 rc-manager=symlink 설정과 함께 /etc/resolv.conf를 symb로 사용 olic 링크가 더 나은 아이디어 일 수 있습니다 (위에서 언급 한 맨 페이지 참조).

업데이트 :

NetworkManager가 /etc/resolv.conf 덮어 쓰기를 중단 한 후 dhcpcd는 부팅시 이미 /etc/resolv.conf를 쓸모없는 빈 파일로 대체했습니다. dhcpcd.conf의 맨 페이지가 도움이되었으며

nohook resolv.conf 

dhcpcd.conf (내는 /etc/dhcpcd.conf에 있습니다).

답변

“은 특정 설치된 응용 프로그램이이 파일을 관리하기 때문입니다. 해당 응용 프로그램을 제거하거나 해당 응용 프로그램을 통해 직접 원하는 옵션을 설정할 수 있습니다.

내 경우 (Linux centos7 최소 서버)의 경우 동일한 상황이 발생했습니다. # Generated by NetworkManager resolv.conf 파일 상단에 있으므로이 옵션을 변경할 수있는 가장 좋은 방법은

nmtui

명령.이 도구에서 네임 서버를 편집 할 수 있으며이 유틸리티에서 네트워크 관리자의 옵션을 변경하면 재부팅 후 /etc/resolv.conf에 자동으로 적용됩니다. 여기에서 자세한 정보를 찾을 수 있습니다 .

답변

모든 인터넷에서 그는 NordVPN의 CLI 유틸리티는 내가 VPN에 연결하고 해제 할 때마다 /etc/resolv.conf를 계속 덮어 썼기 때문에 저를 보냈습니다. 심지어 chattr +i를 덮어 썼습니다. 정말 짜증났습니다 !!

저에게 도움이 된 것은 resolvconf를 완전히 비활성화 하는 것이 었습니다!

/etc/resolvconf.conf를 편집하고 다음 항목을 유일한 항목으로 만듭니다.

resolv_conf=NO 

이것은 특히 는 /etc/resolv.conf가 변경되지 않음을 의미합니다. 그런 다음 sudo chattr +i /etc/resolv.conf로 가십시오.

Arch Linux에서 테스트되었습니다.

답변

Centos 7에서 내가 찾을 수 있었던 가장 깨끗하고 지속적이며 작동하는 솔루션 인 NetworkManager를 사용하는 것은 nmcli를 사용하여 원하는 값을 설정하는 NetworkManager 스크립트를 만드는 것입니다.

권한 755와 다음 내용으로 /etc/NetworkManager/dispatcher.d/mydns.sh를 만듭니다.

#!/usr/bin/sh if [ $1 == "enp0s11" -a $2 == "up" ] then echo "Setting my DNS ($1 is $2)" | logger # disable default DNS nmcli device mod enp0s11 ipv4.ignore-auto-dns yes # Substitute our own DNS, in the desired order nmcli device mod enp0s11 ipv4.dns "10.0.1.101 10.0.1.1" fi 

다시 부팅하지 않고 테스트합니다.

systemctl restart NetworkManager.service cat /etc/resolv.conf 

YMMV,하지만 이것이 제가 찾은 유일한 방법입니다. /etc/resolv.conf가 원하지 않는 값으로 덮어 쓰지 않고 재부팅을 “생존”합니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다