Sistemim tarafından kullanılan DNS sunucularını listelemek için komut satırı

Sistemim tarafından kullanılan dns sunucularını listelemek için bir komut var mı?

Denedim

$ 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 OVERWRITTENnameserver 127.0.0.1$ cat /etc/network/interfaces # interfaces(5) file used by ifup(8) and ifdown(8)auto loiface lo inet loopback

Ancak herhangi bir sunucuyu listelemiyor, "Ağ Yöneticisi GUI Aracı" na gidersem, Kablosuz bölümünde "DNS 192.168.1.1 8.8.8.8 8.8.4.4" listeleniyor.

Aynı bilgiyi komut satırından alabilir miyim?

Ubuntu 12.04 LTS kullanıyorum

çözüm.kendiniz uygulamadığınız sürece conf artık gerçekten kullanılmıyor. Ağ yöneticisi şimdi yapıyor. Sistemimdeki DNS sunucularını listelemek için bir takma ad oluşturdum, çünkü bazen opendns'den Google'ın açık dns'sine geçiyorum.

>Ubuntu = 15

nmcli device show <interfacename> | grep IP4.DNS

Ubuntu <= 14

nmcli dev list iface <interfacename> | grep IP4

Benim durumumda, <interfacename> oluyor eth0. bu yaygındır, ancak her zaman böyle değildir.

Bakalım istediğin bu mu.

düzenlemek:

Sanırım resolv.conf aslında dolaylı olarak kullanılır, çünkü ağ yöneticisi 127.0.0.1'i dinleyen sunucuyu oluşturur, ancak bunun dikkate alınmaması gereken bir uygulama detayı olduğu söylendi. Bu girişten önce DNS adreslerini girerseniz, bunların kullanılabileceğini düşünüyorum, ancak bunun tam olarak nasıl çalıştığından emin değilim. Mümkün olduğunda çoğu durumda ağ yöneticisini kullanmanın en iyisi olduğunu düşünüyorum.

Ubuntu 18.04 ve 20.04'te şunları kullanabilirsiniz systemd-resolve --status

Bu, Ubuntu 13.10 ve önceki sürümleri için geçerlidir. Ubuntu 14.04 ve üstü için bkz. Koala Yeung'un cevabı: 14.04'ten itibaren Ubuntu'da hangi dns'yi kullandığımı nasıl bilebilirim


Kullanmak

nm-tool

Benzer bir çıktı elde edersiniz

NetworkManager ToolState: connected (global)- Device: eth0  [Wired connection 1] -------------------------------------------  Type:              Wired  Driver:            e1000e  State:             connected  Default:           yes  HW Address:        00:11:22:33:44:55  Capabilities:    Carrier Detect:  yes    Speed:           1000 Mb/s  Wired Properties    Carrier:         on  IPv4 Settings:    Address:         10.21.6.13    Prefix:          24 (255.255.255.0)    Gateway:         10.21.6.1    DNS:             10.22.5.133    DNS:             10.22.5.3

Ya da sadece dns'yi görmek için

nm-tool | grep DNS

En çok puan alan iki cevap, nmcli dev list iface <interfacename> | grep IP4 ve nm-tool her ikisi de ağ yöneticisi'nin denetimde olduğunu varsayar. Hangisi - en azından çoğu zaman masaüstü makinelerde. Ancak daha eksiksiz cevap, bazen ağ yöneticisinin kontrol altında olmamasıdır. Örneğin vpnc ile uğraşıyor /etc/resolv.conf direkt olarak.

Yani: Önce 127.0.0.1 / localhost'un kullanılıp kullanılmadığını kontrol edin. Bu ile yapılabilir dig:

> dig something.unknown  | grep SERVER:;; SERVER: 127.0.0.1#53(127.0.0.1)

Artık biliyorsun ki biz oluyorlar localhost'u kullanma. Popüler cevaplardan biriyle devam edin. Beğeniyorum:

> nm-tool | grep DNS:    DNS:             8.8.8.8

Ancak 127.0.0.1 / localhost ise değil kullanılmış, sonra nm-tool's ve nmcli'nin çıktısı yanıltıcı olacak:

> dig something.unknown  | grep SERVER:;; SERVER: 172.22.216.251#53(172.22.216.251)> nm-tool | grep DNS:    DNS:             8.8.8.8

Burada, dig doğru ve nm-tool'nin bilgileri yanıltıcıdır. Gerçekte, VPN kullandığım ortama yerel adresler doğru şekilde çözülür. Tüm bunlar Google'ın dns'si 8.8.8.8 değil bil bakalım.

Bunun nedeni, bir vpn'ye bağlandıktan sonra vpnc, bir satır koyar /etc/resolv.conf yani öyle görünüyor:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTENnameserver 1.2.3.4nameserver 127.0.0.1search MyDomain

cat /etc/resolv.conf DNS sunucularınızı göstermelidir.

Değiştiremezsiniz resolv.conf doğrudan Ubuntu 12.04 ile. Ancak, bunları değiştirmeniz gerekirse, bilgisayarınıza yeni DNS sunucuları ekleyebilirsiniz. /etc/network/interfaces aşağıdakileri ekleyerek dosya:

 dns-nameservers x.x.x.x x.x.x.x

nerede x kullanmak istediğiniz DNS sunucularıdır.

Yerinde olsam kaldırırdım. network-manager. Bence bu bir saçmalık.

Özellikle bilgisayarınızda birden çok NIC varsa, ayarlarınızı değiştirme konusunda endişelenmeden el ile yapmanız gereken her şeyi gerçekleştirebilirsiniz.

nmclı sürüm 0.9.10

Bu komutlardan birini kullanabilirsiniz:

nmcli -t -f IP4.DNS device show eth0IP4.DNS[1]:192.168.1.1IP4.DNS[2]:8.8.8.8nmcli -t -f IP4.DNS connection show conn-nameIP4.DNS[1]:192.168.1.1IP4.DNS[2]:8.8.8.8

Ubuntu 15.10'da DNS alabilirsiniz

nmcli device show <interface name> 

Bunu yapmanın kaç yolu olduğu şaşırtıcı. Bir Ubuntu Sunucusunda 18.04, fazladan bir şey yüklemek istemiyorsanız nm-tool, sonraları systemd-resolve --status DNS bilgileri için kutunun dışında çalışır.

Yalnızca DNS sunucularınızı değil, aynı zamanda varsayılan ağ geçidini, IP adresini, ağ maskesini vb. Almakla ilgileniyorsanız, o zaman netplan ip leases eth0 tüm bu bilgileri okunması kolay bir biçimde size verecektir (ilgilendiğiniz varsayılarak eth0 Arabirim).

Sistemlerde nerede systemd-resolved yüklü değil :

$ host -v something.unknown | awk -F "[ #]" '/Received /{print$5}' | uniq192.168.1.1

Sistemlerde nerede NetworkManager koşuyor :

$ ( nmcli -f IP4.DNS,IP6.DNS dev list || nmcli -f IP4.DNS,IP6.DNS dev show ) 2>/dev/null | awk '/DNS/{print$NF}'192.168.1.1

Ubuntu 20.04'te

systemd-resolve --status | grep -B 9 -A 6 "Current DNS Server"

DNS kullanan her bağdaştırıcı için hangi dns'nin kullanıldığına dair net bir sonuç verdi.

Dns'yi yeniden yapılandırmak için

man systemd-resolved

bağlantı kurulan DNS sunucularının genel ayarlar tarafından belirlendiğini gösterir. /etc/systemd/resolved.conf.

Sudo bu dosyayı düzenleyin ve açın ve ayarlayın DNS= ve FallbackDNS= istediğiniz IPv4 DNS sunucularına.Örneğin, DNS=8.8.8.8 ve FallbackDNS=8.8.4.4 kullanırdı Google Genel DNS.Değişikliği uygulamak için makineyi yeniden başlatın.

@PLA, bunun için teşekkür ederim cevap bu da beni bu yola sürükledi.

Ne bulmaya çalışıyorsun? sisteminiz tarafından kullanılan DNS sunucuları? yoksa DNS araması mı yapmaya çalışıyorsunuz?

Eski @LordofTime

@LordofTime DNS sunucuları sistemim tarafından kullanılıyor

127.0.0.1 kullanıyorsunuz. bir DNS sunucusu mu çalıştırıyorsunuz?

Bakın networking - What DNS servers am I using? - Unix & Linux Stack Exchange bu sorunun Ubuntu olmayan bir sürümü için