DNS sunucusu adresi artık resolv.conf dosyasında saklanmıyor; şimdi nerede


14

Bazen görev çubuğundaki NetworkManager göstergesini kullanarak DNS sunucularını değiştiriyorum; Bu önceki sürümleri ile iyi çalıştı ve aslında bir şey hariç, 12.04 ile de iyi çalışır: DNS adresi de dahil olmak üzere bazı sistem bilgilerini görüntülemek için Conky kullanın ve şimdi her zaman görüntülendiğini fark ettim 127.0.0.1.

İçeri girdim resolv.conf, bu da bu adresi alıyor ve eminim, her zaman söylediği şey bu. Ben el ile dosyayı düzenlemek için uyarı ile tek bir satır var:

nameserver 127.0.0.1

DNS sunucusu adresini şimdi kontrol etmeyi bildiğim tek yol, bilgi sayfasını kontrol etmek için ağ yöneticisi GUI'sini açmaktır. Peki, bu bilgiler şu anda nerede saklanıyor?

Yanıtlar:


17

Bilgiler, Ağ Yöneticisi tarafından dahili olarak yönetilir. Bu bilgileri, dahil edilen nmcliaracı kullanarak komut satırından alabilirsiniz .

Aşağıdaki komutla Ağ Yöneticisi'nin belirli bir ağ arabirimine ilişkin bilgilerini alabilirsiniz:

nmcli dev list iface eth0

( eth0bağlandığınız arayüzle değiştirin ). Çıktı, arayüz ve o arayüzde o anda etkin olan bağlantı hakkında bilgi içerecektir:

GENERAL.DEVICE:                         eth0
GENERAL.TYPE:                           802-3-ethernet
...
IP4.DNS[1]:                             192.168.0.1
...

Bu çıktıdan sonra bulunduğunuz bilgileri elde etmek çok zor olmamalıdır.

Bu verilere erişmek için programlı bir yönteme ihtiyacınız varsa nmcli, bu bilgilere Ağ Yöneticisi'nin D-Bus arabiriminden de erişilebilir olmalıdır.


Çok teşekkürler, bu harika bir bilgi. nmcliÇeşitli ilginç parametreleri listelemek için bu komutu kullanarak basit bir kabuk komut dosyası oluşturmak oldukça kolay olmalıdır . Belki işe yarar bir şeyi kırıp bir yerde paylaşabilirim. Gerçekten Ağ Yöneticisi gerekli olduğunu düşünmüyordu ve sanırım birisi bunu yapmanın alternatif yolları olabilir, ama bu benim için çalışıyor.
Marty Fried

Eh, dinleyen sunucunun Network Manager tarafından başlatılan 127.0.0.1bir örnek olduğunu dnsmasqgörebilirsiniz (çıkışına bakın sudo netstat -tlnp). Ancak bunu bir uygulama detayı olarak düşünmek ve Ağ Yöneticisi'nden istediğiniz bilgiyi sormak en iyisidir, çünkü burada karar veren kişi budur.
James Henstridge

Bu kadar iyi bilgi verdiğiniz için teşekkürler. Ayrıca, sorumu düzenlediğiniz için de teşekkür ederim. :) Benim mazeret, ben sadece 12.04 yükseltme ve birden çok cephede küçük yangın söndürmek oldu. :)
Marty Kızarmış

4
nmcli dev list ifacebenim için nmcli dev showçalışmıyor ama [ubuntu 15.04]
Beni Cherniavsky-Paskin

10

Ubuntu geliştiricileri bu değişiklikleri belgelemelidir /etc/resolv.conf, ancak içermemelidir.

İşte başlamanız için hızlı komutların bir listesi.

  1. Geçerli DNS sunucularını göster

    nm-tool | grep DNS
    
  2. İçinde statik bir DNS sunucusu tanımlayın /etc/dhcp/dhclient.conf. Aşağıdaki satırı ekleyin ve yerel çözümleyiciyi yeniden başlatın:

    supersede domain-search "sub.mydomain.com", "domain.com";
    prepend domain-name-servers 192.168.0.1;
    

    Komut isteminden:

    invoke-rc.d network-manager restart
    

Biraz daha dokümantasyon: resolvconf (8), /usr/share/doc/resolvconf/README.gz.
jdthood

4

Nmcli kullanmanın size her zaman tam cevabı vermeyebileceğini unutmayın. örneğin, bir VPN başlatmak için openconnect (veya vpnc, muhtemelen) kullanıyorsanız ve resolvconf paketi yüklüyse (/etc/resolv.conf dosyasını otomatik olarak yönetmeye özen göstermek için), VPN'nin DNS ayarları 127.0.0.1 öncesinde /etc/resolv.conf biçiminde. Bu durumda, sadece (örn.) "Nmcli -f IP4 dev list" kontrol edilmesi size gerçek geçerli DNS listesini vermez. Bu senaryonun sizi etkileyip etkilemediğinden emin değilim, ancak bahsetmeye değer olduğunu düşündüm.


Ekstra bilgi için teşekkürler; daha fazla bilgi edinmek her zaman iyidir. Kullanım durumum için, endişelenmem gerekmeyecek, çünkü esasen iki olası DNS adresinden hangisinin aktif olduğunu bilmek istiyorum.
Marty Fried

Bir VPN'ye bağlanmak için networkmanager kullanıyorsanız, dns size hangi komutu vermelidir? Dns çalışıyor ama onları bulamıyorum.
Jorge Suárez de Lis
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.