Hangi DNS sunucularını kullanıyorum?


249

Hangi DNS sunucusunu kullandığımı nasıl kontrol edebilirim (Linux'ta)? Ağ yöneticisini ve üniversitemin LAN ağına kablolu bağlantı kullanıyorum. (Etki alanımın neden çözümlenemediğini bulmaya çalışıyorum)

Yanıtlar:


207

Makul bilgi edinebilmeniz gerekir:

$ cat /etc/resolv.conf 

26
Ancak, (modern Linuxen'de) /etc/nsswitch.confhangi ad hizmetlerinin (DNS, LDAP vb.) Kullanıldığını ve hangi sırayla kullanıldığını dikte edin. Söyle fgrep hosts: /etc/nsswitch.conf. Yalnızca DNS'e başvuruyorsa /etc/resolv.conf, ad sunucunuzu aramak için doğru yer. Ancak, mDNS (aka ZeroConf, aka Avahi, aka Bonjour, vb.) Vb. Kullanıyorsunuz. Bu durumda, kullandığınız şeye bağlı olarak işler değişiyor.
Alexios

27
Bu dosya genellikle Ubuntu'da 127.0.1.1 olarak işaret eder - bu, gerçek akış yönünde değil, yerel DNS önbellek sunucusudur.
Barry Kelly

2
@BarryKelly Yönlendiricinizin ne kullandığını kontrol edin, sonra
Geremia

2
Ve yapılandırılmış birkaç yukarı akış sunucunuz varsa? Hangisinin halen kullanıldığını bilmek nasıl?
Sylvain Leroux 24/16

4
Eğer böyle bir cevap olsun daha sağlam değişik şartlar altında yaklaşımı, örneğin için @ G32RW veya @Lonniebiz tarafından cevaplarını gör127.0.0.53
nealmcb

194

İşte nasıl yaparım:

nmcli dev show | grep DNS

Bu yukarıdaki şekilde çalıştı :

nm-tool | grep DNS

14
VPN ve NetworkManager kullanıyorsanız, bu kullanışlıdır . Sizin /etc/resolv.confile, makinenize işaret eder dnsmasqtarafından yapılandırılan isimlerini çözme NetworkManager .
Grzegorz,

6
Debian'da bu network-managerpaket gerektirir .
TranslucentCloud

2
nm aracı, daha yeni linuxlarda mevcut değildir. örneğin debian 8'in 'ağ yöneticisi' paketinde yok.
don

2
2016'da benim için neyin işe yaradığını yansıtacak şekilde cevabı güncelledim.
Lonniebiz

3
bu en iyi cevap, resol.conf her zaman gerçeği göstermez
blade

72

Ayrıca DNS'yi sorgulayabileceğinizi düşünüyorum ve sonucu hangi sunucunun verdiğini gösterir. Bunu dene:

dig yourserver.somedomain.xyz

Ve yanıt size hangi sunucuların sonucu döndürdüğünü söylemelidir. İlgilendiğiniz çıktı şöyle görünecek:

;; Query time: 91 msec
;; SERVER: 172.xxx.xxx.xxx#53(172.xxx.xxx.xxx)
;; WHEN: Tue Apr 02 09:03:41 EDT 2019
;; MSG SIZE  rcvd: 207

Ayrıca dig, belirli bir DNS sunucusunu kullanarakdig @server_ip


8
Debian'da bu dnsutilspaket gerektirir .
Faheem Mitha,

6
Yerel makinenizde çalışan herhangi bir DNS maskeleme / önbellek hizmetini kullanırsanız, gerçek DNS sunucularını gizler.
karatedog 7:15

4
Ubuntu 18.04 yerel dns önbelleğini gösterir:SERVER: 127.0.0.53#53(127.0.0.53)
14:18

58

Sadece yap nslookup. Sonuçlarının bir kısmı, kullandığı sunucuyu içerir.

Aşağıdaki örnekte, kullanılan DNS sunucusunun 8.8.8.8'de olduğunu göstermektedir.

$ nslookup google.com
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
Name:   google.com
Address: 172.217.22.174

1
istemde ne girileceğine dair bir örnek verebilir misiniz?
Chovy

Örnek: $ nslookup www.google.com
Ren,

7
Debian'da bu dnsutilspaket gerektirir .
Gayan Weerakutti

6
Son bir Ubuntu’da, bu tekrar, yerel yorumlayıcı 127.0.0.1’de yerel önbellek sunucusuna işaret ediyor - bu yorumda
FriendFX

CentOS 7'de hata ile sonlanıyor ancak nslookup google.comWindows ana bilgisayarında yaptığım bir vm ve ad sunucusunu buldum. /etc/resolv.confGibi ekleyin : nameserver xx.xx.xx.xxve hizmeti yeniden başlatın networkve her şey yolunda. Seni övmek.
WesternGun

55

Systemd kullanımı kullanan sistemlerde:

systemd-resolve --status

3
systemd-resol: tanınmayan seçenek '--status'
Acumenus

@ ABB sistemi? sistem sürümü?
G32RW

229-4ubuntu21.2
Acumenus

11
Ubuntu 18.04 Bionic Beaver'da bunu yapmanın yeni varsayılan yolu budur - herkes buna alışsın!
AveryFreeman

4
Bu benim için çalışan tek çözüm, diğerleri geri dönerken 127.0.0.53
greuze

13

Yeni network-managerkomutla şunu yapın nmcli:

nmcli --fields ipv4.dns,ipv6.dns con show <connection_name>

Ağ yöneticisinin daha yeni sürümlerinde (örneğin Ubuntu 16.04'te olduğu gibi) alan adları biraz farklıdır:

nmcli --fields ip4.dns,ip6.dns con show <connection_name>

Bağlantı adını bilmiyorsanız, şunu kullanın:

nmcli -t --fields NAME con show --active

Örneğin:

$ nmcli --fields ip4.dns,ip6.dns con show 'Wired connection 1'
IP4.DNS[1]:                             172.21.0.13
IP4.DNS[2]:                             172.21.0.4

Benim sonuçları: order «con» «show» is not valid.
Sopalajo de Arrierez,

Ubuntu 15.10'daki ağ yöneticisi 1.0.4 ile benim için iyi çalışıyor. Belki daha eski bir sürümünüz vardır?
Sameer

Tablo formatı oldukça kötü. Powershell'e benzeyen format gibi bir sütun almayı umuyorum.
CMCDragonkai

1
İadelerError: invalid field 'ip4.dns'; allowed fields: NAME,UUID,TYPE,TIMESTAMP,TIMESTAMP-REAL,AUTOCONNECT,AUTOCONNECT-PRIORITY,READONLY,DBUS-PATH,ACTIVE,DEVICE,STATE,ACTIVE-PATH.
FriendFX 1'17 Aralık'ta

sadece nmcliubuntu'da ihtiyacım olan tek şey 19.04
John Mee

9

DNS SUNUCUSU almak için (sadece IP):

cat /etc/resolv.conf |grep -i '^nameserver'|head -n1|cut -d ' ' -f2
  • cat DNS config çıktısı alacak
  • grep yalnızca ad sunucusunu filtreler
  • head sadece ilk satırı / örneği koruyacak
  • cut satırın ip kısmını alın (ayırıcı olarak '' ile ikinci sütun)

DNS ipini bir ortam değişkenine koymak için aşağıdaki gibi kullanabilirsiniz:

export THEDNSSERVER=$(cat /etc/resolv.conf |grep -i '^nameserver'|head -n1|cut -d ' ' -f2)

2
grep -m 1ilk maçtan sonra eşleşmeyi durdurur, böylece kullanmak zorunda kalmazsınızhead
sshow 8

Daha da boru hattını hafifletmek için, Perl Normal ifadeyle yakalama grupları çok düzgün ve grep bir dosya argüman alır: grep -Pom 1 '^nameserver \K\S+' /etc/resolv.conf. Sadece yukarı yazdım grep Perl düzenli ifade ile Yakalama grupları
sshow

8

Ağ yöneticisi kullanıyorsanız, muhtemelen tüm ağ parametrelerini üniversitenizdeki dhcp sunucusundan alırsınız.

Dns ayarlarınızı kontrol etmek için kabuğunuzu kullanmak istemiyorsanız (hesse ve Alexios tarafından açıklandığı gibi), onları "Ağ bilgileri" panelinden görebilirsiniz.

Bu panele ağ yöneticisi simgesindeki farenin sağ tuşuna basarak ve menüden "Bağlantı Bilgileri" seçeneğini seçerek ulaşabilirsiniz.


5

kullanma resolvectl

$ resolvectl status | grep -1 'DNS Server'
    DNSSEC supported: no
  Current DNS Server: 1.1.1.1
         DNS Servers: 1.1.1.1
                      1.0.0.1

Uyumluluk için, Ubuntu 18.10'daki gibi birçok dağıtım için systemd-resolvesembolik bir bağlantıdır resolvectl:

$ type -a systemd-resolve
systemd-resolve is /usr/bin/systemd-resolve

$ ll /usr/bin/systemd-resolve
lrwxrwxrwx 1 root root 10 nov.  15 21:42 /usr/bin/systemd-resolve -> resolvectl

$ type -a resolvectl
resolvectl is /usr/bin/resolvectl

$ file /usr/bin/resolvectl
/usr/bin/resolvectl: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=09e488e849e3b988dd2ac93b024bbba18bb71814, stripped

Ubuntu 18.10'da mükemmel çalışıyor.
Georgе Stoyanov

3

Komuta

 nmcli dev list iface <interfacename> | grep IP4

"Arayüz" adını değiştirin.

examlpe

 nmcli dev list iface eth0 | grep IP4

Bu, tüm DNS sunucularını listeler (birden fazla kullanıyorsanız).


nmcli dev list iface [devicename]doğru komuttur
sebix


1
Debian'da bir hata alıyorum --- $ nmcli dev listesi iface eth0 Hata: 'dev' command 'list' geçerli değil.
don parlak

nmcli bir RH spesifik komuttur.
Rui F Ribeiro

Bu doğru cevap!
VAdaihiep

3

Fedora 25'e sahibim ve komut satırında sudo komutlarına benzer yavaş yanıtlar vardı.

nmcli dev show | grep DNS 

3 adaptörümden sadece birinin (iki aktif) DNS girişi olduğunu gösterdi. Bir girişi olmayan bir aktif karta DNS girişleri ekleyerek - presto! Her şey iyi ve tepki süresi hemen.


belki de alternatif olarak
Amos Folarin


0

Dns'nizi bulduğunuzu düşündüğünüzde, doğrudan dig: ile sorgulayabilirsiniz dig @<dns ip> <host to lookup>. İşe yararsa, SERVERdurumu ile görmeniz gerekir NOERROR.

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.