온라인에서 보는 대부분의 정보는 /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
다음과 같은 이유로 최상의 솔루션이라고 생각합니다.
- 작동합니다.
- 최소한의 변경 만 필요하며
- 이를 우회하는 대신 dnsmasq의 DNS 캐시와 함께 작동합니다.
댓글
답변
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)
내가 옳다면이 모든 것으로부터 결론을 내립니다
- “head”부분은 resolvonf에서 읽습니다. “base”부분은 dnsmasq에 의해 어떻게 든 제어됩니다.
- dnsserver는 실제로 dhcp에서 제공하는 서버에 관계없이 8.8.4.4로 강제 실행되지만 제공된 캐싱을 잃게됩니다. 요청이 항상 8.8.4.4로 전송되기 때문에 dnsmasq에 의해
- 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 없음
답변
-
“네트워크 연결”검색
-
열기
-
그런 다음 WiFi 또는 이더넷 또는 사용중인 것을 선택하고 편집을 클릭하십시오. 다음과 같이 표시됩니다.
-
탭에서 ipv4 선택
-
방법에서만 주소 선택
-
아래에 DNS 이름을 입력하고 저장
-
완료
댓글
- 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 는 NetworkManager
로 DHCP
를 통해 수신하고 있습니다.
조금 파헤쳐 본 결과 /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.d
head 또는 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
그런 다음 ..
- 찾기 :
dns-nameservers
- 찾을 수 없으면 입력 만하면됩니다.
- 다음과 같이했습니다.
dns-nameservers 199.85.126.10 199.85.127.10
이게 최선의 방법 이었으면 좋겠어요. 그런데 VPS에서 이렇게 했어요.
답변
루트 :
- 댓글
dns=dnsmasq
on/etc/NetworkManager/NetworkManager.conf
-
/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> -
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가 원하지 않는 값으로 덮어 쓰지 않고 재부팅을 “생존”합니다.
/etc/NetworkManager/NetworkManager.conf
에dns=none
를 추가하는 것입니다 (아래 답변에서 자세한 내용 참조).