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


279

온라인에서 볼 수있는 대부분의 정보는 편집하라고 /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변경 사항이 표시되지 않았습니다 ./etc/resolv.confsudo resolvconf -u

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

최신 정보:

나는이 질문에 스스로 대답했다 : https://unix.stackexchange.com/a/163506/67024

나는 그것이 이후 최고의 솔루션이라고 생각합니다.

  1. 효과가있다.
  2. 최소한의 변경이 필요합니다.
  3. 여전히 dnsmasq의 DNS 캐시와 우회하지 않고 작동합니다.

더 나은 귀하의 질문에 대답 대신 내가 생각하는 질문을 업데이트 ... 당신이 당신의 문제에 준 정답 쉽게 찾을 수있을 것입니다
필립 Gachoud

대부분의 답변은 우분투 지향적이고 지나치게 복잡합니다. NetworkManager 사용자를위한 보편적 인 솔루션은 간단히 추가하는 것 dns=none입니다 /etc/NetworkManager/NetworkManager.conf(아래의 답변에서 세부 사항 참조).
Skippy le Grand Gourou

답변 은 resolve.conf를 덮어 쓴 이유를 명확하게 설명하고 구성 방법을 알고 있다고 생각 합니다.
foman

답변:


250

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아래의 다양한 파일에 대해 설명합니다 /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파일 맨 위에 경고가 있지만 :

$ cat /etc/resolvconf/resolv.conf.d/head
# 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

이 경고는 이러한 파일이 구성 될 때 결과 resolv.conf파일 로 전달되어 결과적으로 해당 파일을 만드는 데 사용됩니다. 따라서 파일에 nameserver대해 위에서 설명한 행을 base파일에 쉽게 추가 할 수 head있습니다.

참고 문헌


21
우분투 14.04 - 나는에 네임 서버를 둘 때 base실행 resolvconf -u, 네임 서버가 된 하지 의 resolv.conf에 넣어 - 내가로 네임 서버를 둘 때 head, 그들은했다
HorusKol

7
우분투 /run/resolvconf/interface/NetworkManager
14.04-

3
유형 nslookup google.com과 목록의 첫 번째 IP는 새 이름 서버 여야합니다. 그렇지 않은 경우 잘못된 이름입니다
frazras

6
우분투 16.04 :에 추가 /etc/resolvconf/resolv.conf.d/head되지 않은 경우 에만 작동했습니다 base. 로 확인되었습니다 nslookup google.com.
Acumenus

3
처음에 resolvconf설치되어 있어야합니다. 를 수행하여 설치할 수 있습니다 sudo apt-get install resolvconf.
MAChitgarha

79

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

그것을 테스트하기 위해

nameserver 8.8.8.8

에서 /etc/resolvconf/resolv.conf.d/base

nameserver 8.8.4.4

...에서 /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-tooldnsserver는

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. resolvonf는 "head"부분 만 읽습니다. "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

4
NS 설정을 해킹하는 것보다 훨씬 나은 답변입니다. 특히 dhcp 앞에 서버를 추가하는 옵션은 서버를 제공했습니다. 새로운 문제를 만들지 않고 문제를 해결하는 완벽한 균형 인 것 같습니다!
Steve Midgley

2
단지 명령이 아니라 대답에 대한 많은 명확성과 생각.
igaurav

3
요 맨! "대체 도메인 이름 서버 8.8.8.8;" 답입니다
Jack

nm-tool이 nmcli로 대체되었다는 점에 주목할 가치가 있습니다
Fiddy Bux

59

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

server=8.8.8.8
server=8.8.4.4

나는하지 않았다 /etc/dnsmasq.conf그것이하는 dnsmasq 패키지가 설치되어 있기 때문에,하지만 파일을하지만, 우분투 만하는 dnsmasq베이스와 함께 제공됩니다. 나는 실행 sudo apt-get install dnsmasq한 후 편집 /etc/dnsmasq.conf한 후, sudo service dnsmasq restartsudo service network-manager 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

4
이것이 최고의 답변으로 표시되는 이유가 있습니다 ... 실제로 이것이기 때문입니다! 매우 감사합니다! 언급 한 모든 단계를 마친 후에는 모든 것이 순조롭게 작동하기 위해 네트워크를 다시 시작해야 할 수도 있다고 sudo service network-manager restart
Clint Eastwood

3
Ubuntu 14.04 Server에서 콜드 부팅시 약 절반은 URL을 사용하여 인터넷에 연결되지 않지만 IP 주소는 작동합니다. 나는 결실없이 고치려고 많은 시간을 보냈고 몇 달 동안 포기한 다음이 해결책을 찾았습니다. 나도 그게 가장 좋은 대답이라고 생각합니다.
Nate Lockwood

dnsmasq를 설치해야한다는 것은 흥미 롭습니다. 이것은 실제로 정상적인 상황에서 내 DNS를 수정했지만 VPN 구성이 완전히 끊어졌습니다 (VPN 연결이 실패합니다 ...)
PlasmaBinturong

22

정적 IP 상황에서 Ubuntu 서버 안내서는 / 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

8.8.8.8과 같이 원하는 IP의 192.168.3.45 192.168.8.10을 변경합니다.

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


이것은 확실히 옳아 보이지만 이제 resolv.conf를 어떻게 재생성합니까?!
Joel Berger

3
@JoelBerger ifdown eth0; ifup eth0.
Dzamo Norton

17
  1. '네트워크 연결'검색
  2. 열어 봐

                        여기에 이미지 설명을 입력하십시오

  3. 그런 다음 WiFi 또는 이더넷 또는 사용중인 것을 선택하고 편집을 클릭하십시오. 당신은 이것을 얻을 것입니다 :

                  여기에 이미지 설명을 입력하십시오

  4. 탭에서 ipv4를 선택하십시오

  5. 방법으로 만 주소를 선택하십시오
  6. 아래에 DNS 이름을 입력하고 저장하십시오

  7. 끝났어


그래도 각 네트워크 연결 마다이 작업을 수행해야합니다. 과거에는 모든 연결의 기본값을 변경할 수있었습니다.
Seán Hayes

2
사랑해! 이 UI 설정은 sudo와 vim mess에서 내 엉덩이를 구했습니다 : '(
Luke

Mint (Ubuntu 14.04)를 사용하지만 KDE
에서도이 기능을 보았습니다.

2
가장 좋은 답변 imho. Ubuntu 14.04에서 홈 네트워크 내부의 클라이언트를 인식하지 못하는 DNS 용 외부 IP 주소 2 개가 있습니다. 유선 연결을위한 '자동 (DHCP)'방법을 남겨두면 라우터의 IP 주소가 기존 목록에 추가되었습니다 . wlan0을 통한 무선 연결의 경우 작동하지 않지만 '자동 (DHCP) 주소 만'에 대한 방법은 외부 주소를 라우터 IP 로 교체 한 후에도 작동했습니다. 로 변경 사항을 적용 sudo service network-manager restart하고 잠시 기다렸다가로 확인하십시오 nmcli d list | grep 'DNS\|IP-IFACE'. 그리고 내부 클라이언트를 이름으로 핑합니다.
RolfBly 2016 년

13

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

$ sudo nano /etc/resolv.conf

이것을 추가하고 저장하십시오 :

nameserver 8.8.8.8

그때:

$ sudo chattr +i /etc/resolv.conf

그 트릭을해야합니다. 나는 내 시스템에서도 이것을한다.


18
귀하의 솔루션에 chattr이 포함될 때마다 실제로는 솔루션이 아닙니다.
Jeff Jirsa 2016 년

1
이것은 어떤 이유로 DNS를 일시적으로 변경하고 구성을 수정하지 않으려는 시스템에서 수행하는 작업입니다. 영구적 인 해결책으로 나는 그것을 권장하지 않습니다.
hochl

3
"빠르고 더러운 해결 방법"
YouniS Bensalah

10
이것은 더럽지 않습니다. 그들이 더 잘 알고 있다고 생각하여 로컬 구성을 파괴하는 프로그램.

11

Linux에서 DNS 구성

리눅스에서의 DNS 사용 은 인터넷 도메인 네임 시스템 (DNS)에 대한 액세스를 제공하는 C 라이브러리의 루틴 세트를 통해 이루어집니다 . 확인자 구성 파일 ( resolv.conf)에는 프로세스가 처음 호출 할 때 확인자 루틴이 읽는 정보가 포함되어 있습니다. 간단히 말해 DNS를 요청하는 각 프로세스는 /etc/resolv.conf라이브러리 를 읽 습니다. NSS 는이 위에 쌓여 있으며에 의해 구성됩니다 /etc/nsswitch.conf.

Linux DNS 구성 은 파일에 /etc/resolv.conf 있지만 에서 DNS 구성 파일을 자동으로 관리하고 처리하려는 많은 프로그램 / 서비스가 /etc/resolv.conf있습니다. 경우에 따라이 파일을 직접 관리 할 수도 있습니다. DNS를 관리하는 각 프로그램 / 서비스는 /etc/dnsmasq.conf(dnsmasq 서비스 용)과 같은 자체 구성 파일을 가지고 있으며 연결 변경 및 / 또는 기타 이벤트에서 DNS 구성을 추가합니다 ... 빠른 해결책은 DNS 구성 파일을 잠그는 chattr +i /etc/resolv.conf것이지만 권장하지는 않습니다 어떤 경우에는 (dnsmasq / network-manager / resolvconf / etc와 같은) DNS를 사용하여 모든 프로그램 / 서비스를 올바르게 설정하는 것이 더 나은 솔루션입니다.

DNS 제어권 회복

다음은 resolv.conf의 제어를 되찾고 덮어 쓰지 않도록 하는 전체 설정 목록입니다 ( resolv.conf 이외의 다른 위치에서 DNS를 비활성화 / 설정하는 방법 ). resolvconf는 resolv.conf와는 독립적 인 프로그램입니다. 시스템 / 구성에 따라 여기에 나열된 하나 이상의 프로그램이 없을 수 있습니다.

1. Resolvconf :

구성 파일

cat /etc/resolvconf/resolv.conf.d/head
nameserver 8.8.4.4
cat /etc/resolvconf/resolv.conf.d/base
nameserver 8.8.4.4

구성 업데이트

sudo resolvconf -u

resolvconf 비활성화

systemctl disable --now resolvconf.service 

2. Dnsmasq 서비스 :

구성 파일

cat /etc/dnsmasq.conf
server=1.1.1.1
server=8.8.4.4

구성 업데이트

sudo systemctl restart dnsmasq.service

3. 네트워크 관리자 :

구성 파일

/etc/NetworkManager/*

DNS 비활성화

$ cat /etc/NetworkManager/conf.d/no-dns.conf
[main]
dns=none

DNS 사용

$ cat /etc/NetworkManager/conf.d/dns.conf
[main]
dns=default

[global-dns]
searches=example.com

[global-dns-domain-*]

해결 된 서비스 사용

$ cat /usr/lib/NetworkManager/conf.d/resolved.conf 
[main]
dns=systemd-resolved

resolvconf 사용

$ cat /usr/lib/NetworkManager/conf.d/resolvconf.conf 
[main]
rc-manager=resolvconf

구성 업데이트

systemctl restart NetworkManager.service

4. 네트워크 인터페이스 :

구성 파일

$ cat /etc/network/interfaces
#nameservers
# or dns-search like so
# dns-search x.y 
dns-nameservers 4.4.4.4 8.8.8.8

구성 업데이트

reboot

5. DHCP 클라이언트 :

구성 파일

$ cat /etc/dhcp3/dhclient.conf
supersede domain-name-servers <dns_ip_address1>,<dns_ip_address2>;

구성 업데이트

reboot

6. Rdnssd 서비스 :

rdnssd 비활성화

systemctl disable --now rdnssd.service

7. 해결 된 서비스 :

해결 비활성화

systemctl disable --now systemd-resolved.service

8. Netconfig :

구성 파일

/etc/sysconfig/network/config

netconfig 비활성화

cat /etc/sysconfig/network/config
NETCONFIG_DNS_POLICY=""

구성 업데이트

reboot

DNS 서버 설정

/etc/resolv.conf구성 예

#Cloudflare
nameserver 1.0.0.1

#Google
#nameserver 8.8.8.8
#nameserver 8.8.4.4

#Cloudflare 
#nameserver 1.1.1.1

#Classic Config
#nameserver 192.168.1.1
#search lan

10

내 문제는 조금 달랐습니다. 라우터 DNS 서버를 무시하고 싶었습니다. 우분투 에서이 링크를 찾았습니다 : https://wiki.ubuntu.com/OverrideDNSServers

DHCP 서버에서 제공 한 DNS 설정을 무시하려면 다음을 수행하십시오.

/etc/dhcp3/dhclient.conf

다음 줄을 추가하십시오.

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

<dns_ip_address*>적절한 내용으로 항목을 교체 하십시오.


이것이 내 문제를 해결 한 답변입니다.
Michael

완전한. 변경 사항을 활성화하려면 sudo 서비스 네트워킹 재시작을 추가해야합니다.
Nick Triantafillou

해당 dhcp3폴더 가 없으면 어떻게합니까? Xubuntu 17.10이 있는데 /etc/dhcp간단하게 이동 했습니까?
PlasmaBinturong

4

어쩌면 내가 누락 된 것이지만 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

가능하면 재부팅하십시오.


3

추가하십시오 dns-nameservers XXX.XXX.XXX.X당신에 /etc/networking/interfaces파일.


공감할 때 의견을 남겨주세요. 이 방법은 매뉴얼 , 38 페이지에 나와 있습니다.
Zook

1
언급되지 않은 매뉴얼은 모든 IP를 한 줄에 표시합니다. 이 답변은 줄을 추가하는 것이 좋습니다. 그리고 마지막 숫자는 왜 하나의 X 너비입니까? @Zook은 비공식적이고 불확실한 짧은 채팅 스타일의 글이라고 생각합니다.
Cees Timmerman

2

여기에 대한 답변 중 일부는 정상적으로 작동합니다. 그러나 나는 수동으로 단지 "적절한"설정 구성 파일을 통과해야 사실에 행복하지 않았다 DNS이는 이미 이상 수신하고 DHCP과를 NetworkManager.

나는 약간의 파기를하고 /etc/resolv.conf파일이 실제로 링크이고 그것을 가리키는 것을 알았 습니다 /run/systemd/resolve/stub-resolv.conf. 몇 가지 실험을 한 후에 /run/systemd/resolve/디렉토리에는을 resolv.conf통해받은 설정이 이미 포함 된 다른 파일이 포함되어있는 것으로 보입니다 DHCP. 따라서에서 구성 파일을 수동으로 덮어 쓰거나 작성하는 대신 파일 을 가리 키도록 /etc/간단히 다시 링크 /etc/resolv.conf하면됩니다 /run/systemd/resolve/resolv.conf.

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

이제 Gnome의 네트워크 관리자에서도 설정을 편집 할 수 있습니다. :)

이것이 오래된 우분투에서 작동하는지 확실하지 않지만 우분투 17.10에서는 작동합니다.


우리 systemd-resolve --flush-cache가 원본 링크 파일 을 실행할 때 명백하게 단절 될 때, 위의 대답은 원래 기능을 복원합니다
hafizhanindito

1

2016 년 5 월 6 일 수정

/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

작동중인 스크립트 :

여기에 이미지 설명을 입력하십시오

원래 POST 여기서 일부 사용자는 DNS가 어떻게 든 제어한다고 지적했습니다 dnsmasq. 사실입니다. 어떻게 변경 head하거나 body에 관계없이 /etc/resolvconf/resolv.conf.d내 컴퓨터가 실제로 도메인 이름으로 인턴 액세스 할 수 없으며 IP 주소로만 작동 하는 다소 작은 문제에 직면했습니다 .

내가 한 일은 /etc/NetworkManager/NetworkManager.conf파일 을 편집하는 것 입니다. 원래는 말 dns=dnsmasq했지만 다음과 같이 변경했습니다 dns=208.67.222.222. 이 방법으로 nm-tool208.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를 연결할 수 없다는 것을 알게되었습니다. 나는 약간의를-읽었 man NetworkManager.conf그것은 밝혀 dns=에서이 [main]실제로 플러그인 라인, 그래서 선은 dns=dnsmasq실제로 분명히, 네트워크 매니저로하는 dnsmasq 플러그인을 추가하고있다.

따라서 내 솔루션은 예상대로 작동하지 않았습니다. 맨 페이지에서 발췌 한 내용은 다음과 같습니다.

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

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

따라서 dns=208.67.222.222기본적으로 설정 하면 NetworkManager가 해당 플러그인을 사용하지 못하게되어 로컬 DNS 서버를 사용했을 수 있습니다 (겉으로는 작동하지 않음).


1

있다 방법은

방법 1

head아래의 파일 을 업데이트하여 사용할 DNS 서버를 변경할 수 있습니다resolv.conf.d

$ echo 'nameserver 1.1.1.1' | sudo tee /etc/resolvconf/resolv.conf.d/base

그런 다음 실행

$ sudo resolvconf -u

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

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

방법 2

위의 작업을 원하지 않고 DNS 확인에 dnsmasq를 사용하려면 답변을 참조하십시오 . 대답은 여기에 간단히 설명되어 있습니다.

/etc/dnsmasq.conf파일에 다음 내용을 추가 하십시오.

server = 1.1.1.1

그런 다음 dnsmasq 서비스를 다시 시작하십시오.

$ sudo systemctl restart dnsmasq.service

일이 잘 될 것입니다. 해결되었습니다.


0

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에서 이와 같이했습니다.


0

루트에 :

  1. 코멘트 dns=dnsmasq/etc/NetworkManager/NetworkManager.conf
  2. 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;끝에 추가/etc/dhcp/dhclient.conf
  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에서 잘 작동합니다.


0

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

이 질문에 대한 견해를 감안할 때이 8 자 솔루션이 아직 게시되지 않았다는 것은 놀라운 man NetworkManager.conf일입니다.

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

따라서 추가

dns=none

에서 [main]의 섹션 /etc/NetworkManager/NetworkManager.conf다음 네트워크 매니저를 다시 시작하고 그것을 수정하지 않습니다 /etc/resolv.conf더 이상.

설정 rc-manager=unmanaged은와 동일해야하며 기호 링크로 사용하는 것과 함께 dns=none설정 하는 것이 더 좋습니다 (위에서 언급 한 맨 페이지 읽기).rc-manager=symlink/etc/resolv.conf

업데이트 :

네트워크 매니저는 덮어 쓰기를 중지 한 후 /etc/resolv.conf, 나는 생각 dhcpcd이미 교체 된 /etc/resolv.conf부팅 쓸모없는 빈 파일로. dhcpcd.conf도움 이되는 맨 페이지는 추가하기에 충분합니다.

nohook resolv.conf

당신의 dhcpcd.conf(광산에 있습니다 /etc/dhcpcd.conf).


0

내 Linux centos7 서버 에서이 옵션을 변경할 수있는 가장 좋은 방법은

nmtui

여기에 어떤 대답도 제안되지 않은 명령. 이 도구에서 이름 서버를 편집 할 수 있으며이 유틸리티에서 networkmanager 옵션을 변경하면 /etc/resolv.conf재부팅 후 자동으로 적용됩니다 . 여기에서 자세한 정보를 찾을 수 있습니다 .

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