resolv.conf içindeki 127.0.1.1 nameserver kaybolmaz!


60

Ben olması gerektiğini okudum nameserver 127.0.1.1benim de /etc/resolv.confbenim makine kendi DNS sunucusu varsa dosyada. Olmadığından, sorun olması sorunlara yol açar. Ama ne yaparsam yapayım ondan kurtulamam!

İşte şimdiye kadar yaptığım şeyler:

  1. Ekleme nameserver 192.168.1.3için /etc/resolvconf/resolv.conf.d/basedosya. (192.168.1.3 ağımızın DNS’idir).
  2. Koşu: sudo resolvconf --enable-updates.
  3. Koşu: sudo resolvconf -u.
  4. Koşu: sudo service network-manager restart(sadece emin olmak için).

Ben açtığınızda Oysa /etc/resolv.confdosyayı diyor: nameserver 127.0.1.1! Sorunun ne olduğu hakkında fikri olan var mı?

Lütfen gerçekte bunun olduğunu unutmayın 127.0.1.1! Ve neden olmadığı hakkında hiçbir fikrim yok 127.0.0.1!

/etc/resolv.confEl ile güncellediğimde ve başka bir şeyle değiştirdiğimde bile sudo resolvconf -u, geri dönecek 127.0.1.1! Bu adres nereden geliyor?

Yanıtlar:


100

NetworkManagerın (resolvconf yarar üzerinden) adresini ekler program 127.0.1.1içine resolv.conf. NM, eğer bir yerel yönlendirme ad sunucusu olarak hizmet etmek için dnsmasq programının bir örneğini başlatmak üzere yapılandırılmışsa bu adresi ekler. Bu dnsmasq örneği, 127.0.1.1 adresindeki sorguları dinler.

Yerel bir yönlendirme ad sunucusu kullanmak istemiyorsanız, NetworkManager'ı bir dnsmasq örneği başlatmayacak ve bu adresi girmeyecek şekilde yapılandırın. Gelen /etc/NetworkManager/NetworkManager.confhat üzerinden açıklamadns=dnsmasq

sudo nano /etc/NetworkManager/NetworkManager.conf

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

ve NetworkManager servisini yeniden başlatın.

sudo service network-manager restart

Bu modda NetworkManager, NetworkManager'ın /etc/resolv.confaktif bağlantılar için sahip olduğu ad sunucusu adreslerini içerecek şekilde güncellenir (hala resolvconf aracılığıyla).

Resolv.conf dosyasını güncellemek için resolvconf mekanizmasını devre dışı bırakmak ve yalnızca statik bir resolv.conf dosyasını kullanmak istiyorsanız, aşağıdakileri yapın.

sudo rm -f /etc/resolv.conf  # Delete the symbolic link
sudo nano /etc/resolv.conf   # Create static file

# Content of static resolv.conf
nameserver 8.8.4.4
nameserver 8.8.8.8

3 DNS'im var ve dnsmasq'ı devre dışı bırakırsam, sorgunun hiçbiri 3.'e ulaşmıyor mu? Google’ı ve ardından intranet dns’i sorgulamak istiyorum. Teşekkürler
JorgeeFG 14:15

3
restart network-managerXenial üzerinde, başlangıç ​​yerine systemd kullandığı için çalışmaz. deneyinsystemctl restart network-manager
Matthias Weiler

Benim sorum dnsmasq programı hangi DNS sunucusuna soracak? DHCP'nin DNS sunucusuna ana bilgisayar IP adresi sorgusunu sorar mı?
Saat ZHONG

11

Resolvconf'un yanlış yapılandırılmış olması mümkündür. Bu, özellikle resolvconf ve NetworkManager'ın nasıl çalıştığını gerçekten anlamadan konfigürasyon dosyaları ile uğraşıyorsanız olasıdır.

Arka plan bilgisi için lütfen resolvconf belgelerini ve Stéphane Graber'ın blog gönderisini okuyun.

https://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/

İlk önce, hem Ubuntu Desktop hem de Ubuntu Server’ın varsayılan olarak resolvconf kurulu ve aktif olduğunu bilmelisiniz. Resolvconf /etc/resolv.conf dosyasını düzenli ve geri dönüşümlü bir şekilde dinamik olarak güncellemek için bir çerçeve sunar.

İkinci olarak, Ubuntu Desktop’ın varsayılan olarak NetworkManager kurulu ve aktif olduğunu bilmelisiniz. Varsayılan olarak NetworkManager yerel bir yönlendirme ad sunucusu olarak hizmet etmek için bir dnsmasq örneği başlatır. Bu NetworkManager kontrollü dnsmasq örneği, 127.0.1.1'deki sorguları dinler. NetworkManager dnsmasq örneğini başlattığında, resolvconf'a adresini 127.0.1.1resolv.conf'a eklemesini söyler . Başka bir cevapta da belirtildiği gibi, eğer NetworkManager'ı yerel bir yönlendirme ad sunucusu örneği başlatmayacak şekilde yapılandırırsanız, yerel bir yönlendirme ad sunucusu başlatmaz ve adresini 127.0.1.1resolv.conf'a eklemek için resolvconf komutunu vermez .

Bu varsayılan yapılandırma düzgün çalışır, bu nedenle durumunuz özel değilse, varsayılan yapılandırmayı geri yüklemelisiniz.

Varsayılan yapılandırmayı geri yüklemek için

  • /etc/resolvconf/resolv.conf.d/head, yalnızca bir #karakterle başlayan iki satırdan oluşan resolvconf başlık metnini içerir
  • /etc/resolvconf/resolv.conf.d/base boş bir dosyadır
  • /etc/resolvconf/resolv.conf.d/tail boş bir dosyadır
  • /etc/resolv.conf, içeriği olan sembolik bir bağlantıdır ../run/resolvconf/resolv.conf

Bunu başarmak için aşağıdaki komutları uygulayın.

sudo su
dpkg-reconfigure resolvconf   # And answer `Yes` to agree to dynamic updates
cd /etc/resolvconf/resolv.conf.d
echo '# 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' > head
rm -f base tail original
:> base
:> tail

NetworkManager’ın orijinal yapılandırması

[main]
...
dns=dnsmasq
...

/etc/NetworkManager/NetworkManager.conf. NetworkManager tarafından kontrol edilen yerel yönlendirme ad sunucusunu, dns=dnsmasqsatırı yorumlayarak devre dışı bırakmak makul bir seçimdir .

[main]
...
#dns=dnsmasq
...

Tüm bunları yaptıktan sonra, eski ad sunucusu bilgi kayıtlarını silmek için makineyi yeniden başlatmanız önerilir.

sudo reboot

1

Benim durumumda dns=dnsmasq, /etc/NetworkManager/NetworkManager.confdosyada satır yoktu ve /etc/resolv.confAğ Yöneticisi tarafından yalnızcanameserver 127.0.1.1

Düzeltme, doğru güncelleme için bir sembolik link oluşturmaktı:

sudo ln -sf /run/resolvconf/resolv.conf /etc/resolv.conf
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.