Resolv.conf'un üzerine yazarken DNS'imi nasıl ayarlarım?


279

Çevrimiçi gördüğüm bilgilerin çoğu düzenleme diyor /etc/resolv.conf, ancak orada yaptığım değişiklikler geçersiz kılınır.

$ 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

Görünüşe göre 127.0.1.1 yerel bir örneği dnsmasq. dnsmasqDocs düzenlemek için söylemek /etc/resolv.conf. Özel ad sunucuları yerleştirmeyi denedim /etc/resolv.conf.d/base, ancak /etc/resolv.confçalıştırdıktan sonra değişiklikler görünmedi sudo resolvconf -u.

Bilginize, DNS'i bağlantı bazında değiştirmek istemiyorum, aksi belirtilmediğinde tüm bağlantılar için kullanılacak varsayılan DNS ayarlarını yapmak istiyorum.

GÜNCELLEME:

Bu soruyu kendim cevapladım: https://unix.stackexchange.com/a/163506/67024

Bence o zamandan beri en iyi çözüm:

  1. İşe yarıyor.
  2. En az miktarda değişiklik gerektirir ve
  3. Hala atlamak yerine dnsmasq'ın DNS önbelleği ile birlikte çalışır.

Sorunuzu güncellemek yerine sorunuzu daha iyi yanıtlayın bence ... sorununuza verdiğiniz doğru cevabı bulmak daha kolay olacaktır
Philippe Gachoud

Yanıtların çoğu Ubuntu odaklı ve aşırı karmaşık görünüyor. NetworkManagerın kullanıcıları için evrensel bir çözümdür sadece eklemektir dns=noneiçinde /etc/NetworkManager/NetworkManager.conf(aşağıda cevabım ayrıntıları bakınız).
Skippy le Grand Gourou

Bunu düşünmek cevap resolve.conf yazılır neden o zaman bunu nasıl yapılandırılacağı bilmek açıklık getirmektedir.
foman

Yanıtlar:


250

DNS ad sunucusunu geçersiz kılmak istiyorsanız, aşağıdaki basedosyaya yalnızca buna benzer bir satır eklediğinize inanıyorum resolv.conf.d.

Örnek

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

Ardından ad sunucusu listenizi şöyle koyun:

nameserver 8.8.8.8
nameserver 8.8.4.4

Sonunda güncelleme resolvconf:

$ sudo resolvconf -u

Man sayfasına bir göz atarsanız resolvconf, altındaki çeşitli dosyaları açıklar /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

headDosyanın tepesinde bir uyarı olmasına rağmen :

$ 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

Bu uyarı, bu dosyalar oluşturulduğunda, uyarı sonuçta resolv.confbu dosyaların yapılacağı sonuçtaki dosya yolunda çalışacak şekilde vardır . Böylece dosya nameserveriçin yukarıda açıklanan satırları kolayca basedosyaya ekleyebilirsiniz head.

Referanslar


21
Ubuntu 14.04 - İçine nameserverlar koyduğunuzda baseve çalıştırmak resolvconf -u, ad sunucularının edildi değil resolv.conf koymak - İçine nameserverlar koyduğunuzda head, onlar
HorusKol

7
Ubuntu 14.04 - Ayrıca kümesi yapılandırmasını dışarı yorumlamak zorunda/run/resolvconf/interface/NetworkManager
bitsoflogic

3
yazın nslookup google.comve listedeki ilk IP, yeni ad sunucunuz olmalıdır, yanlışsa yanlış yaptınız
frazras

6
Ubuntu 16.04: /etc/resolvconf/resolv.conf.d/headYalnızca eklendiyse çalıştı , birlikte değil base. İle onaylandı nslookup google.com.
Acumenus

3
Başlangıçta, resolvconfyüklemiş olmanız gerekir . Bunu yaparak yükleyebilirsiniz sudo apt-get install resolvconf.
MAChitgarha

79

Bu soruya da ilgi duyuyorum ve @sim'de önerilen çözümü denedim.

Test etmek için koydum

nameserver 8.8.8.8

içinde /etc/resolvconf/resolv.conf.d/baseve

nameserver 8.8.4.4

içinde /etc/resolvconf/resolv.conf.d/head

Sonra ağ ile yeniden başlattım

sudo service network-manager restart

Sonuç /etc/resolv.confşuna benziyor

# 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

ve nm-tooldnsserver’ın

DNS:             208.67.222.222
DNS:             208.67.220.220

yönlendiricim tarafından sağlananlar. Öte yandan, bir adres kazma

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

Eğer haklıysam, bütün bunlardan sonuçlanırım.

  1. sadece "head" kısmı resolvonf tarafından okunur: "base" kısmı bir şekilde dnsmasq tarafından kontrol edilir
  2. dnscver gerçekte dhcp tarafından sağlanan sunucudan bağımsız olarak 8.8.4.4'e zorlanır, ancak istek her zaman 8.8.4.4'e gönderildiği için dnsmasq tarafından sağlanan önbelleği kaybedersiniz
  3. dnsmasq hala SADECE dhcp tarafından sağlanan dnsserver kullanıyor.

Sonuçta, işe yarıyor ama bunun istenen sonuç olduğunu sanmıyorum. Daha yakın bir çözüm bence aşağıdaki. Düzenle

sudo vim /etc/dhcp/dhclient.conf

sonra Ekle

supersede domain-name-servers 8.8.8.8;

Sonuç şudur: resolv.conf sadece 127.0.0.1 içerir, bu da dnsmasq önbelleğinin çağrıldığı ve nm-tool’un

DNS:             8.8.8.8

Bu, aranan adın önbellekte olmaması durumunda, 8.8.8.8'de ve dhcp tarafından sağlanan sunucuda istenmediği anlamına gelir.

Bir başka (belki de daha iyi) seçenek, "süper yerine" yerine "hazırla" seçeneğini kullanmaktır: bu şekilde, adın 8.8.8.8 tarafından çözülmemesi durumunda, istek diğer sunucuya geri döner. Aslında, nm aracı diyor ki

DNS:             8.8.8.8    
DNS:             208.67.222.222
DNS:             208.67.220.220

4
NS yapılandırmalarına girmekten çok daha iyi bir cevap. Özellikle dhcp'nin önüne bir sunucu hazırlama seçeneği sundu. Sorunu çözmenin mükemmel dengesi gibi görünüyor, yenilerini yaratmadan!
Steve Midgley

2
Cevabın içine çok netlik ve düşünceler sadece bir komut değil.
igaurav

3
Yo adam! "etki alanı adı sunucuları yerine 8.8.8.8;" Cevap
Jack

Nm aracının nmcli ile değiştirilmiş olması dikkat çekicidir
Bux

59

dnsmasqAşağıdaki satırları ekleyerek kullanan ad sunucularını değiştirebileceğinizi öğrendim /etc/dnsmasq.conf:

server=8.8.8.8
server=8.8.4.4

/etc/dnsmasq.confYine de bir dosyam yoktu , çünkü dnsmasq paketi tarafından kurulduğundan beri, Ubuntu sadece dnsmasq-base ile birlikte geliyor. Koştum sudo apt-get install dnsmasqardından düzenlenen, /etc/dnsmasq.confsonra, sudo service dnsmasq restartve sudo service network-manager restart.

sudo tail -n 200 /var/log/syslogSistem günlüğümü kontrol etmek ve bunun dnsmasqbelirlediğim ad sunucularını kullandığını doğrulamak için koştum :

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
Bunun en iyi cevap olarak işaretlenmesinin bir nedeni var ... çünkü gerçekten! çok teşekkürler! Bahsettiğiniz tüm adımlardan sonra, her şeyin sorunsuz çalışması için bir ağın yeniden başlatılması gerekebileceğini ekleyeceğim (bu benim için .... sudo service network-manager restart)
Clint Eastwood

3
Ubuntu 14.04 Server’da soğuk başlatma, bir URL’yi kullanarak hiçbir İnternet bağlantısına neden olmaz, ancak bir IP Adresi çalışır. Verimsiz bir şekilde tamir etmeye çalışırken çok zaman geçirdim, aylarca vazgeçtim, sonra bu çözümü buldum. Ben de bunun en iyi cevap olduğunu düşünüyorum.
Nate Lockwood

Dnsmasq'ın kurulu olması ilginçtir. Bu gerçekten
DNS'imi

22

Statik IP durumları için, Ubuntu Sunucu Rehberi / etc / network / interfaces dosyasını şöyle gösteriyor:

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’lerini 192.168.3.45 192.168.8.10’da değiştirmek isteyin, 8.8.8.8 gibi

https://help.ubuntu.com/14.04/serverguide/serverguide.pdf Sayfa 38


Bu kesinlikle doğru görünüyor ama şimdi nasıl resolv.conf yeniden oluşturabilirim ?!
Joel Berger,

3
@JoelBerger ifdown eth0; ifup eth0.
Dzamo Norton

17
  1. 'Ağ Bağlantısı'’nı arayın
  2. Aç onu

                        görüntü tanımını buraya girin

  3. Ardından WiFi ya da Ethernet'i ya da ne kullanıyorsanız seçin ve düzenlemeyi tıklayın. Bunu alacaksınız:

                  görüntü tanımını buraya girin

  4. Sekmelerde ipv4 seçin

  5. Adresleri yalnızca yöntemde seçin
  6. DNS adınızı aşağıya girin ve kaydedin

  7. Sen bittin


Yine de her ağ bağlantısı için bunu yapmak zorunda kalırdım. Geçmişte, burada yapmak istediğim şey olan tüm bağlantılar için varsayılanı değiştirebilirsiniz.
Seán Hayes

2
Seni seviyorum! bu UI ayarı kıçımı sudo ve vim karmaşasından kurtardı: '(
Luke

Nane Kullanımı (Ubuntu 14.04'te) - ancak bunu KDE ile de gördüm - bazı nedenlerden dolayı, GUI Ağ Yöneticisi'nde DNS sunucularının ayarlanması bir terminalde kullanılan DNS ayarlarını etkilemez
HorusKol

2
En iyi cevap imho. Ubuntu 14.04'te, DNS için ev ağımdaki istemcileri tanımayan 2 harici IP adresi aldım. Kablolu bağlantı için 'Otomatik (DHCP)' bırakma yöntemi, yönlendiricimin IP adresini mevcut listeye ekledi . Wlan0 üzerindeki kablosuz bağlantı için bu işe yaramadı, ancak 'Yalnızca Otomatik (DHCP) adresleri' konusundaki Yöntem , dış adresleri yönlendirici IP'm ile değiştirdi ve sonra da çalıştı. Değişiklikleri uygula sudo service network-manager restart, biraz bekle, ile doğrula nmcli d list | grep 'DNS\|IP-IFACE'. Ve dahili müşterinize isminizle ping atmak.
RolfBly

13

Henüz belirtilmeyen hızlı ve kirli bir geçici çözüm, resolv.confdosyayı düzenledikten hemen sonra dosyadaki değişmez bayrağı ayarlamaktır .

$ sudo nano /etc/resolv.conf

Bunu ekle ve kaydet:

nameserver 8.8.8.8

Sonra:

$ sudo chattr +i /etc/resolv.conf

Bu hile yapmalı. Bunu da sistemimde yapıyorum.


18
Çözümünüz her zaman chattr ile ilgilidir, bu gerçekten bir çözüm değildir.
Jeff Jirsa,

1
DNS'i geçici olarak bir nedenden dolayı değiştirmem gereken ve yapılandırmayı değiştirmek istemediğim sistemlerde yaptığım şey budur. Kalıcı bir çözüm olarak bunu tavsiye etmem.
hochl

3
"hızlı ve kirli geçici çözüm"
YouniS Bensalah

10
Bu kirli değil. Yerel yapılandırmayı yok eden programlar, çünkü daha iyi bildiklerini düşünüyorlar kirli.

11

Linux Altında DNS Yapılandırması

Linux'ta DNS kullanımı , C kitaplığındaki Internet Etki Alanı Adı Sistemine (DNS) erişim sağlayan bir dizi yordam üzerinden gerçekleştirilir . Çözümleyici yapılandırma dosyası ( resolv.conf), ilk kez bir işlem tarafından çağrıldığında çözümleyici yordamları tarafından okunan bilgileri içerir. Kısacası, DNS isteyen her işlem /etc/resolv.confkitaplığı okuyacaktır . NSS bunun üzerine yerleştirilmiştir ve ile yapılandırılmıştır /etc/nsswitch.conf.

Linux DNS yapılandırma dosyasında bulunan /etc/resolv.conf ANCAK otomatik olarak yönetmek ve DNS yapılandırma dosyasını ele almak istiyor programların bir numarası / hizmetler vardır /etc/resolv.conf. Bazı durumlarda bu dosyayı kendiniz yönetmek isteyebilirsiniz. DNS'yi yöneten her program / hizmet /etc/dnsmasq.conf(dnsmasq hizmeti için) gibi kendi yapılandırma dosyalarına sahiptir ve bağlantı değişikliği sırasında ve / veya diğer etkinliklerde DNS yapılandırmasını ekler ... DNS yapılandırma dosyasını kilitlemek için hızlı bir çözümdür, chattr +i /etc/resolv.confancak bu önerilmez Bazı durumlarda, daha iyi bir çözüm DNS gibi (dnsmasq / network-manager / resolvconf / etc.) kullanarak tüm program / hizmetleri doğru şekilde ayarlamaktır.

DNS Kontrolünü Geri Alma

Burada, resolv.conf'un kontrolünü geri almak ve üzerine yazmaktan kaçınmak için kapsamlı bir liste verilmektedir ( DNS'in, resolv.conf dışındaki bir konumdan nasıl devre dışı bırakılacağı / ayarlanacağı) sisteminize / konfigürasyonunuza bağlı olarak, burada listelenen programlardan birine veya daha fazlasına sahip olmayabilir.

1. Resolvconf:

Yapılandırma dosyaları

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

Config güncelle

sudo resolvconf -u

Resolvconf'u devre dışı bırak

systemctl disable --now resolvconf.service 

2. Dnsmasq Hizmeti:

Yapılandırma dosyaları

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

Config güncelle

sudo systemctl restart dnsmasq.service

3. Ağ Yöneticisi:

Yapılandırma dosyaları

/etc/NetworkManager/*

DNS'yi devre dışı bırak

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

DNS'yi etkinleştir

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

[global-dns]
searches=example.com

[global-dns-domain-*]

Çözülmüş servis kullan

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

Resolvconf kullanın

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

Config güncelle

systemctl restart NetworkManager.service

4. Ağ Arabirimleri:

Yapılandırma dosyaları

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

Yapılandırmayı Güncelle

reboot

5. DHCP İstemcisi:

Yapılandırma dosyaları

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

Yapılandırmayı Güncelle

reboot

6. Rdnssd Hizmeti:

Rdnssd'yi devre dışı bırak

systemctl disable --now rdnssd.service

7. Çözülmüş Hizmet:

Çözüldü devre dışı bırakıldı

systemctl disable --now systemd-resolved.service

8. Netconfig:

Yapılandırma dosyaları

/etc/sysconfig/network/config

Netconfig'i devre dışı bırak

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

Yapılandırmayı Güncelle

reboot

DNS Sunucusunu Ayarlama

Bir /etc/resolv.confyapılandırma örneği

#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

Sorunum biraz farklıydı, yönlendiricilerimin DNS sunucularını geçersiz kılmak istedim. Bu bağlantıyı Ubuntu'dan buldum: https://wiki.ubuntu.com/OverrideDNSServers

Diyor ki: Size bir DHCP sunucusu tarafından sağlanan DNS ayarlarını geçersiz kılmak istiyorsanız,

/etc/dhcp3/dhclient.conf

ve aşağıdaki satırı ekleyin:

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

<dns_ip_address*>Öğeleri uygun içerikle değiştirmek .


Bu benim sorunumu çözdü cevap.
Michael

Mükemmel. Yalnızca, değişiklikleri etkinleştirmek için hizmet ağını yeniden başlatmanız gerektiğini eklemeniz yeterli.
Nick Triantafillou

Ya o dhcp3klasöre sahip değilsek? Ben Xubuntu 17.10 var, /etc/dhcpbasitçe mi taşındı ?
PlasmaBinturong

4

Belki bir şeyleri özlüyorum, ancak https://help.ubuntu.com/14.04/serverguide/network-configuration.html adresindeki config talimatlarına göre tek yapmanız gereken aşağıdakileri güncellemektir. Proxy çalıştırmıyorum - yalnızca güvenlik duvarı ve yerel DNS'in arkasındaki bir makine (örnek Googles'ı gösteriyor, ancak ihtiyacınız olanı ayarlayın).

nano /etc/network/interfaces

Varsayılan:

# This file...
# and how to activate...

# The loopback...
auto local
iface lo inet loopback

# The primary network interface 
auto eth0
iface eth0 inet dhcp

GÜNCELLENMİŞ:

# 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

Yapabiliyorsanız, yeniden başlatın.


3

Eklemeyi deneyin dns-nameservers XXX.XXX.XXX.Xsizin içine /etc/networking/interfacesdosyası.


Oyunuzu düşürdüğünüzde yorum yapın, lütfen. Bu kılavuzda sayfa 38'de verilen yöntemdir.
Zook

1
Belirtilen kılavuz tüm IP'leri bir satırda gösterir. Bu cevap bir satır eklemeyi öneriyor gibi görünüyor. Ve neden son rakam sadece bir X genişliğinde? Sanırım çoğunlukla, indirgemeleri artıran son derece gayri resmi ve belirsiz kısa sohbet tarzı yazıydı, @Zook.
Cees Timmerman

2

Buradaki cevapların bazıları gayet iyi çalışıyor. Ancak ben elle sadece "doğru" ayarlamak için yapılandırma dosyaları geçmek zorunda gerçeği ile mutlu değildi DNShangi Zaten üzerinde alıyorum DHCPile NetworkManager.

Biraz kazı yaptım ve /etc/resolv.confdosyanın aslında bir bağlantı olduğunu ve bunun işaret ettiğini fark ettim /run/systemd/resolve/stub-resolv.conf. Bazı denemelerden sonra, /run/systemd/resolve/dizinde resolv.confzaten aldığınız ayarları içeren ve adında başka bir dosya var DHCP. Bu nedenle, yapılandırma dosyalarının üzerine el ile yazmak / oluşturmak yerine , dosyayı işaret etmek için /etc/yeniden bağlanabilirsiniz ve hepsi iyi olmalıdır:/etc/resolv.conf/run/systemd/resolve/resolv.conf

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

Artık ayarları Gnome'daki Ağ Yöneticisinden bile düzenleyebilmelisiniz. :)

Bunun eski ubuntu üzerinde çalışıp çalışmayacağından emin değilim, ancak Ubuntu 17.10'da çalışır.


biz çalıştırdığınızda systemd-resolve --flush-cachegörünüşte kopmuş olan orijinal bağlantılı dosyayı yanıt yukarıda özgün işlevselliği geri
hafizhanindito

1

EDİT MAYIS 6,2016

/etc/Network-Manager/system-connections/Dizindeki sistem bağlantılarının tüm ayarlarını güncellemek için bir komut dosyası yazdım . Tek tek bağlantıları düzenlemek için kullandığınız GUI, bu dizindeki belirli bir dosyayı düzenler. Betik tüm dosyaları günceller - sadece grns ile ayarlanmış dns olmayanları arar ve awk ile ayarlar.

Bu dosyalara erişmek sudoerişim gerektirdiğinden , bu betiği ile çalıştırın sudove ardından - ağ yöneticisini yeniden başlatın

#!/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

Komut dosyası çalışırken:

görüntü tanımını buraya girin

ORİJİNAL POST Buradaki bazı kullanıcılar, DNS'nin bir şekilde kontrol edildiğini belirtti dnsmasq. Bu gerçekten doğru. Ne olursa olsun ben nasıl değiştiğini biraz daha küçük sorunu karşılaştık headya bodyiçinde /etc/resolvconf/resolv.conf.d, bilgisayarım aslında domain adıyla enterne erişimin olamazdı - sadece IP adresleri ile çalışıyor.

Yaptığım /etc/NetworkManager/NetworkManager.confdosyayı düzenlemek . Başlangıçta, bu sözü dns=dnsmasqama bunu değiştirdi: dns=208.67.222.222. Bu şekilde, nm-tool208.67.222.222'den söz etmese de, sadece IP adreslerini değil, alan adlarını da kullanabildim.

İşte NetworkManager.confdosyam şimdi nasıl görünüyor:

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

[ifupdown]
managed=false

NOT: Sorunum ve bu çözüm hakkında daha fazla ayrıntı için askubuntu.com adresindeki postama bakın .

GÜNCELLEME # 1

Bugün üniversiteden eve döndüğümde ev WiFi ile bağlantı kuramadığımı keşfettim. Biraz üzerinde yukarı okudum man NetworkManager.confve çıkıyor dns=içinde [main]aslında eklentiler için bir çizgi, bu nedenle çizgi dns=dnsmasqaslında görünüşte, NetworkManager için dnsmasq eklentisi ekliyor.

Yani benim çözümüm hala çalıştı, beklediğim gibi değildi. İşte man sayfasından alıntı:

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

DNS eklentileri, yerel önbellekleme ad sunucusu işlevini sağlamak (DNS sorgularını hızlandıran) ve DNS verilerini onu kullanan uygulamalara itmek için kullanılır.

Bu nedenle dns=208.67.222.222, temel olarak, yerel olarak yerel DNS sunucusunu (görünüşe göre çalışmayan) kullanacak olan bu eklentiyi kullanmalarını engellemiş olabilirim.


1

Orada iki yöntemleri

Yöntem 1

Kullanılacak DNS sunucusu head, altındaki dosyayı güncelleyerek değiştirilebilir.resolv.conf.d

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

ve sonra koş

$ sudo resolvconf -u

Yukarıdakiler resolv.conf, /etcdizinde genel bir dosya üretecektir . Tüm çözümleme istekleriniz yukarıda belirtilen ad sunucusuna gönderilecektir. Çözüldü.

Bununla birlikte, bunun etkileri vardır. resolvconfDoğrudan 1.1.1.1adres çözünürlüklerini sorgulamak için kullanıldığında , dnsmasq tarafından sağlanan önbellekleme gücü ortadan kalkar. Her istek gidecek1.1.1.1

Yöntem 2

Yukarıdakilerin olmasını istemez ve dnsmasq'ı DNS çözünürlükleri için kullanmak istemiyorsanız bu cevaba bakın . Cevap basitçe burada açıklanmıştır.

Aşağıdaki içeriği /etc/dnsmasq.confdosyaya ekleyin .

Sunucu = 1.1.1.1

Ardından dnsmasq servisini yeniden başlatın

$ sudo systemctl restart dnsmasq.service

İşler iyi olacak. Çözüldü.


0

DNS'yi değiştirmenin kolay yolu:

$ sudo nano /etc/network/interfaces

Sorunlar ortaya çıkarsa, yükleyin nano:

$ sudo apt-get install nano -y

sonra ..

  1. bunu bul: dns-nameservers
  2. bulamazsanız sadece oraya yazın
  3. Ben de böyle yaptım: dns-nameservers 199.85.126.10 199.85.127.10

Umarım bu en iyi yoldur, bu arada VPS'de böyle yaptım.


0

kökünde:

  1. yorum dns=dnsmasqile ilgili/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;sonuna ekle/etc/dhcp/dhclient.conf
  3. sudo service network-manager restart

Aşağıdaki yukarıda gösterilen değişiklikleri yapar:

$ 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

Yeniden başlatma işlemini tamamlamak için 7/10 saniye bekleyin, config configlookup nist.gov ile kontrol edin. Ubuntu LTS 14.04'te iyi çalışıyor.


0

Not: Çoğu cevap gibi, bu da NetworkManager'ın kullanıldığını varsayar. Ancak diğer birçok cevapları aksine, kullanımını üstlenmez resolvconf, dhclientveya başka bir şey - onlar, devralmak olsa (güncelleme bakınız) olabileceğini sakının.

Bu sorunun görüntülenme sayısı düşünüldüğünde bu oldukça inanılmaz 8 karakter göre: Çözüm henüz gönderilmedi man NetworkManager.conf,

dns: […] none: NetworkManager resolv.conf dosyasını değiştirmez. Bu, rc-manager'ın yönetilmeyen olduğu anlamına gelir.

Bu nedenle ekleyin

dns=none

içinde [main]bölüm /etc/NetworkManager/NetworkManager.confsonra NetworkManagerı yeniden ve onu değiştirmez /etc/resolv.confartık.

Bu ayar Not rc-manager=unmanagedeşdeğer olmalıdır dns=noneayarlayarak ve bu rc-manager=symlinksahip birlikte /etc/resolv.confsembolik bağlantı olarak daha iyi bir fikir (yukarıda belirtilen manpage okuyun) olabilir.

Güncelleme :

NetworkManager'ın üzerine yazmayı bıraktıktan sonra , açılışta zaten boş bir dosyayla değiştirildiğini /etc/resolv.confdüşündüm . Yardım sayfası, eklemek için yeterlidhcpcd/etc/resolv.confdhcpcd.conf

nohook resolv.conf

senin içinde dhcpcd.conf(benimki /etc/dhcpcd.conf).


0

Benim Linux centos7 sunucumda bu seçeneği değiştirmenin en iyi yolu kullanıyordu

nmtui

Burada herhangi bir cevapta önerilmeyen komut. Bu araçta ad sunucularını düzenleyebilirsiniz ve ağ yöneticisi seçeneklerini bu yardımcı programdan değiştirdiğinizde, yeniden başlattıktan /etc/resolv.confsonra otomatik olarak uygulanacaktır . Burada daha fazla bilgi bulabilirsiniz .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.