Nasıl resolv.conf aracılığıyla bir DNS sunucusu ekleyebilirim?

192

Ubuntu 12.04 LTS (Kesin Pangolin) 'de /etc/resolv.conf kullanışsız mıdır?

Görüyorum ki DNS sunucusu bilgileri şimdi NetworkManager 'da saklanıyor. % Co_de% komut satırı aracı sizin için bunu listeleyebilir.

Bir tane daha DNS sunucusu eklemek istiyorsam, nmcli değerini kullanarak bunu /etc/resolv.conf dosyasına ekleyeceğim paket yardımı?

    
sordu PnotNP 03.05.2012 02:00

18 cevap

130

/etc/resolv.conf nameserver 127.0.0.1 içeriyorsa ve /etc/resolvconf/resolv.conf.d/tail girdisine girişler gerçekten yararlı bir şey yapmaz.

NetworkManager'ı kullanıyorsanız, bunun yerine ağ göstergesi aracılığıyla ad sunucu adreslerini statik olarak eklemelisiniz: Bağlantıları Düzenle ... | Düzenle ... | IPv4 Ayarları | Ek DNS sunucuları .

/etc/resolv.conf 'ya daha fazla giriş eklemek istiyorsanız, /etc/resolvconf/resolv.conf.d/tail oluşturun ve oraya ekleyin.

Her Ubuntu sürümünde olduğu gibi, burada bulunan Ubuntu Sürüm Notlarını okumak önerilir:

Masaüstü ve Ortak Altyapı bölümleri

bağlantısını içerir
  • İşte , DNS altyapısındaki değişiklikleri 12.04'te kapsayacak.
verilen cevap stgraber 03.05.2012 02:21
128

Başka bir yaklaşım buldum buradaki aşağıdakine benzer bir satır eklemek /etc/dhcp/dhclient.conf :

prepend domain-name-servers x.x.x.x, y.y.y.y;

Aynı şekilde, üçüncü bir yaklaşım buldum burada /etc/network/interfaces 'ye satır eklemeyi içerir:

auto eth0
iface eth0 inet static
    . . .
    dns-nameservers 8.8.8.8 8.8.4.4

Güncelleme: Üçüncü yaklaşım için resmi belgeler .

    
verilen cevap Randall Cook 09.05.2012 00:48
84

Çözünürlük paketi hakkında konuşuyormuşsunuz gibi geliyor.

resolvconf paketini yükleyin.

Çalıştır

cd /etc/resolvconf/resolv.conf.d
sudo cp -p head head.orig  #backup copy, always do this
sudo nano head

Dosyanın üstü korkunç bir uyarıdır. /Etc/resolv.conf dosyası bu dosyanın içeriğinden otomatik olarak oluşturulur; Uyarı var /etc/resolv.conf oluşturulduğunda /etc/resolv.conf yerleştirilir. Dosyanın sonuna

ekleyin
nameserver <ip_of_nameserver>

Ctrl x 'e basın ve dosyayı kaydetmek için evet' e basın. Bitirmek için /etc/resolv.conf dosyasını yenileyin böylece değişiklikler şu anda uygulanıyor:

sudo resolvconf -u

Ardından eklediğiniz çizginin şimdi orada olduğunu görmek için /etc/resolv.conf içeriğini kontrol edin. Ayrıca, makinenizin bir sonraki açılışında veya ağ hizmetinizin yeniden başlatıldığında (hangisi önce gerçekleşirse) yine orada olacaktır.

    
verilen cevap Azendale 01.07.2011 01:41
29

Aşağıda, Ubuntu Server sürümünü çalıştırdığımdan ve NetworkManager yerine ifup kullanmamdan beri bulduğum en iyi yolu göstereceğim.

Aslında benim için bunu daha kolay hale getirdiler :) hepsini / etc / network / interfaces dosyasına koyduk. Resolv.conf dosyasına yazdığınız aynı yapılandırmalar, aşağıdaki örnekte olduğu gibi ağ bağdaştırıcısı yapılandırmalarınızla aynı dosyada olabilir:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 192.168.1.2
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        dns-nameservers 75.75.75.75 75.75.76.76
        dns-search local

Umarım bu yardımcı olur ve benim için yaptığı gibi kolaylaştırır, şimdi statik IP adresleri oluşturabilir ve ad sunucularına ve dns etki alanına tek bir dosyada ekleyebiliriz:)

    
verilen cevap Joseph Mituzas 24.05.2012 00:55
16

Benimki Ubuntu Server 12.04 çalışıyor. Aşağıdaki değişiklikleri yaptım ve sunucuyu yeniden başlattım (genellikle bu yalnızca ağ arabirimini aşağıya çekerek yapılabilir, yani ifdown eth0 veya ifup eth0 ).

% co_de dosyasında% Aşağıdaki girişleri ekledim:

nameserver 8.8.8.8
nameserver 8.8.4.4

Umarım yukarıdakiler yardımcı olur!

    
verilen cevap Don Chai 19.03.2013 06:56
11

NetworkManager'ı Frank'ın cevabında belirtildiği gibi kullanabilirsiniz, ancak /etc/resolv.conf 'yi elle düzenlemeyi tercih ederseniz, bunu silerek (aslında bir sembolik link) ve daha sonra istediğiniz içeriğe sahip yeni bir düz dosya oluşturarak yapabilirsiniz. % Co_de% yardımcı programı, yalnızca resolvconf dosyasına yazıyor.

    
verilen cevap Jase 04.05.2012 16:38
8

Not: Bu cevap, Sorunun oldukça farklı, bir birleşme öncesi sürümü için, yalnızca istenen bir ad sunucusunun önceden beklemesine odaklanmıştı.

Bu, 12.04 öncesi çalışır:

/etc/dhcp3/dhclient.conf değerini düzenleyin ve ekleyin:% prepend domain-name-servers 127.0.0.1;

(Aslında, bu satır zaten mevcut; yapmanız gereken tek şey yorum yapmamaktır.)

    
verilen cevap belacqua 06.03.2011 21:26
6

resolvconf kullanışsız. Bir Linux sunucusundayım ve IP adresim statik ve DNS sunucuları statiktir. resolvconf veya NetworkManagerın .

Basit tutulması, bir sunucu üzerinde çalışırken politikamdır. Daha az karmaşıklık, işler bozulduğunda yönetmek / düzeltmek o kadar kolay olacaktır.

Bu yüzden aptitude purge resolvconf yaptım ve /etc/resolv.conf 'in sembol bağlantısı olduğundan emin olmadım ve sadece bir statik oluşturdum dosya. Bir program dosyayı değiştirmeye çalıştığında, chattr +i (immutable) değerini /etc/resolv.conf değerine önlem olarak yaptım.

    
verilen cevap Mark 16.10.2012 17:41
4

Yukarıdakilerin çoğu, bozulmamış bir sisteme sahip olduğunuzu varsayar, ancak gerçekte çoğu zaman, farklı dhcp istemcilerini yüklediğiniz, ağ yöneticisini Ubuntu'nun önceki bir sürümünde devre dışı bırakmış olmanız vb. gibi bilgiler vardır. Aşağıdakileri bilmek faydalı olabilir. Bir süredir dnsmasq kullanıyorum, ama yükledim. Şu anda sistemimde aşağıdaki /etc/resolv.conf içeriği vardı (sistemimde /run/resolvconf/resolv.conf simgesel bir bağlantıdı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.0.1

Ne sıklıkta sudo resolvconf -u veya sudo dpkg-reconfigure resolvconf koştuğum önemli değil, ad sunucusunu NetworkManager'da belirlediklerime güncellemedi. NetworkManager’ın kullanmış olduğu bilgi özniteliği mevcut:

cat /run/resolvconf/interface/NetworkManager  
nameserver 8.8.4.4
nameserver 8.8.8.8

Ancak, bu dizinde birden çok dosya varsa, bu dosya hiç kullanılmayabilir. Suçlu, dnsmasq'ın kaldırılmasıyla kaldırılmayan bir dosyaydı:

cat /run/resolvconf/interface/lo.dnsmasq                        
nameserver 127.0.0.1

Sadece bu dosyayı kaldırarak (ve sonra sudo resolvconf -u çalıştırıyorum) dns sıkıntılarımı çözdüm:

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 8.8.4.4
nameserver 8.8.8.8 

Umarım bu, başkalarının hata ayıklamalarına da yardımcı olur (tüm bu farklı ağ araçları arasındaki karmaşık etkileşimler). % Co_de% kullanıyorsanız, orada ne olduğunu görmek için resolvconf çalıştırdığınızdan emin olun.

    
verilen cevap Anne van Rossum 27.12.2014 13:54
2

"AUTO ETH0" bağlantısını ya da NM'ye bağlanmak için kullandığınız adın herhangi birisini düzenleyebilirsiniz. Bunu NM üzerinde sağ tıklayıp "Bağlantıları Düzenle ..." yi seçerek yapabilirsiniz. IPv4 sekmesinde "Otomatik (DHCP) adresleri" sadece "Yöntem" olarak seçilebilir ve NM, ad sunucu adreslerinin el ile ayarlanmasına bile izin verir, hatta adresler DHCP üzerinden gönderilir.

    
verilen cevap Frank Barcenas 04.05.2012 16:29
2

Bir bağlantıyı /etc/resolv.conf 'de sildim ve ad sunucularının adresleriyle birlikte bir düzen dosyası oluşturdum. Çalışıyor ve Ubuntu geliştiricilerinin yarattığı oldukça garip bir yapıyı kullanmak için hiçbir neden göremiyorum.

    
verilen cevap Ivan 19.03.2013 07:34
1

Kaynakların sırasını değiştirerek bunu çözdüm. % Co_de% kaynağını dns önce taşıdım. % Co_de:%

hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4

Ayarlarınızı koruyabilir ve yerel önbellek sunucusunu bu şekilde kullanabilirsiniz.

    
verilen cevap Dan B 13.10.2012 03:47
1

Nasıl hakkında:

  

sudo dpkg-reconfigure resolvconf

Bundan önce, DNS adresini değiştirmek ve Yöntemi değiştirmek için Ağ Yöneticisi'ni kullanın

  

Otomatik (DHPC) adresleri sadece

Sonra yukarıdaki komutu çalıştırın ve yeniden başlatın. Bu benim için çözüm yaptı.

    
verilen cevap Adige72 03.02.2013 21:40
1

Bitti zaten uzun listeye eklendiğinde, işte başka bir yol var (12.04 tarihinde test edildi):

İhtiyaçlarınıza uyacak şekilde /run/resolvconf/interface/NetworkManager 'yi düzenleyin. İşte bir örnek:

search foobar.com example.com
nameserver 192.168.1.1

Sonra, diğer örneklerin çoğunda belirtildiği gibi, sudo resolvconf -u yapın. Şimdi resolv.conf 'nin şu şekilde görüneceğini göreceksiniz:

nameserver 192.168.1.1
nameserver 127.0.0.1
search foobar.com example.com

Halen uygulanma şeklini hala sevmiyorum (Ubuntu'nun yaptığı her foo için bir hizmete ihtiyacı var gibi görünüyor) ve kesinlikle resolv.conf olmasını tercih ederim. Ama bu yaklaşım benim için şimdiye kadarki en iyi uzlaşma gibi görünüyor. Eklenen "localhost-NS" çok fazla acı çekmemeli.

    
verilen cevap Izzy 28.09.2013 23:32
1
vi /etc/network/interfaces


This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The primary network interface
allow-hotplug eth0


# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
#auto eth0         <<----- change this comment with the #
iface eth0 inet dhcp
    
verilen cevap Roy Rogers 04.07.2014 12:33
1

Bu, IMO'nun oldukça hacky olduğu standart olası cevaplardan oluşan bir koleksiyonla çok popüler bir sorudur. Ubuntu'nun NetworkManager'da kurduğum DNS ayarlarına - özellikle de "Sadece Otomatik (DHCP) adresleri olan statik DNS sunucularının ayarlanması - ve bugün sonunda AKTİF YANLIŞ OLDUĞUNU çözdüm." / p>

Sorun, resolvconf ve NetworkManager arasındaki etkileşimde. resolvconf /etc/resolvconf/interface-order adlı bu dosyaya sahip. En azından sistemlerimde, NetworkManager bu dosyada yoktur (sonundaki * wild card tarafından kapsanması hariç). Yani, dhclient’in en son rapor olan resolvconf’u, NetworkManager’ın söylemek zorunda olduğu her şeyden önce gelir.

Böylece, en azından benim durumumda, gerçek cevap eklemek oldu

NetworkManager

/etc/resolvconf/interface-order öğesinin üstünde veya yakınında.

(Evet, birçok insanın sadece kendi başına kötü bir fikir gibi görünen "resolvconf'u kaldır" dediğini biliyorum. Fakat bundan daha da fazlası, en azından akıllıca ve xenial, sistemin hayati bir parçasını çözüme kavuşturmayı düşünüyor. Yani, ubuntu-minimal buna bağlıdır], bu yüzden sisteminizi kararlı, güncellenmiş bir durumda kararlı bir şekilde tutmak zor olurdu.)

Talep üzerine, bunu nasıl çözdüğüm hakkında daha fazla bilgi verebilirim. Özetle, resolvconf yürütülebilir dosyasını, argümanlarını, girdilerini, çıktılarını ve stderr dosyalarını dosyalarına dökülen bir kabuk sarmalayıcı ile değiştirdim; ve resolvconf'un güncelleme komut dosyalarına -x setini ekledi.

    
verilen cevap Steven Collins 31.05.2016 20:32
0

Başka bir yol, docker'a özgü dns sunucularını tanımlamaktır:

/etc/docker/daemon.json

Böyle bir dosyanız yoksa, sadece şunu oluşturun:

{
    "dns": ["10.0.0.2", "8.8.8.8"]
}

Kaynak: İşte

Ayrıca bkz .: İşte

    
verilen cevap AndreyKo 04.01.2017 13:27
0

DNS’i değiştirmek için aşağıdaki talimatları izleyin: İşte

  1. Ağa Git

  2. DNS'yi yapılandırmak istediğiniz bağlantıyı seçin.

  3. Kablosuz bağlantı ayarlarını değiştirmek için Kablosuz sekmesini seçin, ardından uygun kablosuz ağı seçin.

  4. Okuya (sağa) tıklayın ve açılan pencerede IPv4 Ayarları veya IPv6 Ayarları sekmesini seçin.

  5. Seçilen yöntem Otomatik (DHCP) ise, açılır menüyü açın ve yalnızca bunun yerine Otomatik (DHCP) adresleri seçin. Yöntem başka bir şeye ayarlanmışsa, onu değiştirmeyin.

  6. DNS sunucuları alanında, virgülle ayrılmış DNS IP adreslerini girin

verilen cevap Ferroao 10.11.2017 21:54

Etiketlerdeki diğer soruları oku