Cum pot verifica ce server DNS folosesc (în Linux)? Folosesc administratorul de rețea și o conexiune prin cablu la rețeaua LAN a universității mele. (Încerc să aflu de ce domeniul meu nu se rezolvă)

Răspuns

Ar trebui să puteți obține câteva informații rezonabile în:

$ cat /etc/resolv.conf 

Comentarii

  • Cu toate acestea, vă rugăm să rețineți că (pe Linuxen modern) conținutul /etc/nsswitch.conf dictează ce nume de servicii sunt utilizate (DNS, LDAP etc.) și în ce ordine. Spuneți fgrep hosts: /etc/nsswitch.conf. Dacă face referire doar la DNS, /etc/resolv.conf este locul potrivit pentru a căuta serverele dvs. de nume. Dar sunt șanse să ‘ să folosiți și mDNS (alias ZeroConf, alias Avahi, alias Bonjour etc.) etc. În acest caz, lucrurile depind de ceea ce ‘ se folosește.
  • Acest fișier indică de obicei 127.0.1.1 pe Ubuntu – este ‘ serverul cache DNS local, nu actualul upstream.
  • @BarryKelly Verifică ce folosește routerul tău, apoi
  • Și dacă ai configurat mai mulți server upstream? Cum să știți care este utilizată în prezent?
  • Consultați răspunsurile de la @ G32RW sau @Lonniebiz pentru o abordare mai robustă în diverse circumstanțe, de ex. când primiți un răspuns ca 127.0.0.53

Răspuns

Aici „Cum o fac:

( nmcli dev list || nmcli dev show ) 2>/dev/null | grep DNS 

Acest a funcționat anterior la modul de mai sus:

nm-tool | grep DNS 

Pe Debian, trebuie să aveți pachetul network-manager instalat.

Comentarii

  • Acesta este util dacă utilizați VPN și NetworkManager . /etc/resolv.conf vă va indica computerul, cu dnsmasq rezolvarea numelor așa cum este configurat de NetworkManager .
  • Pentru Debian, acest lucru necesită pachetul network-manager.
  • nm-tool nu este disponibil în versiunile mai noi Linux. de exemplu, nu este în pachetul ‘ network-manager ‘ din debian 8.
  • I ‘ Am actualizat răspunsul pentru a reflecta ceea ce funcționează pentru mine în 2016.
  • acesta este cel mai bun răspuns, resolve.conf nu arată întotdeauna adevărul

Răspuns

La sistemele care rulează systemd utilizați:

systemd-resolve --status 

Comentarii

  • systemd-resolve: opțiune nerecunoscută ‘ –status ‘
  • Spune Failed to get global data: Unit dbus-org.freedesktop.resolve1.service not found.
  • Acesta este noul mod implicit de a face acest lucru în Ubuntu 18.04 Bionic Beaver – obișnuiți-vă, toată lumea!
  • Acesta este singurul soluție care a funcționat pentru mine, pe măsură ce ceilalți au revenit 127.0.0.53
  • Ce citesc? Văd doar înregistrări DNSSEC.

Răspuns

Cred că puteți interoga DNS și vă va arăta ce serverul a returnat rezultatul. Încercați acest lucru:

dig yourserver.somedomain.xyz 

Și răspunsul ar trebui să vă spună ce server (e) a returnat rezultatul. Rezultatul care vă interesează va arăta cam așa:

;; 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 

De asemenea, puteți spune dig să interogați un server DNS specific utilizând dig @server_ip

Comentarii

  • Pentru Debian, este nevoie de dnsutils.
  • Dacă utilizați orice serviciu de mascare / cache DNS rulat pe computerul dvs. local, acesta va ascunde serverele DNS reale.
  • Ubuntu 18.04 arată doar cache-ul local DNS: SERVER: 127.0.0.53#53(127.0.0.53)

Răspuns

Doar faceți un, nslookup . O parte din rezultatele sale includ serverul pe care îl folosește.

În exemplul de mai jos, arată că serverul DNS utilizat este la 8.8.8.8.

$ 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 

Comentarii

  • puteți da un exemplu despre ce să introduceți în prompt?
  • Exemplu: $ nslookup www.google.com
  • Pe Debian este nevoie de pachetul dnsutils.
  • Pe un Ubuntu recent, acesta indică din nou serverul cache local 127.0.0.1 așa cum a fost deja sugerat în acest comentariu
  • În CentOS 7 se oprește cu eroare, dar este un vm, așa că am făcut nslookup google.com în gazda Windows și am găsit serverul de nume. Adăugați-l în /etc/resolv.conf ca: nameserver xx.xx.xx.xx și reporniți serviciul network și totul este în regulă. Te lauda.

Răspuns

Cu noua comandă network-manager nmcli, faceți acest lucru:

nmcli --fields ipv4.dns,ipv6.dns con show [connection_name] 

Pe versiunile mai noi ale administratorului de rețea (cum ar fi în Ubuntu 16.04), numele câmpurilor sunt ușor diferite:

nmcli --fields ip4.dns,ip6.dns con show [connection_name] 

Dacă nu cunoașteți numele conexiunii, utilizați:

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

De exemplu, pe versiunile vechi ale nmcli:

$ 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 

Comentarii

  • Rezultatele mele : order «con» «show» is not valid.
  • Funcționează bine pentru mine cu network-manager 1.0.4 pe Ubuntu 15.10. Poate aveți o versiune mai veche?
  • Formatul tabelar este destul de prost. Sper să obțin o coloană asemănătoare cu Powershell.
  • Returnează Error: invalid field 'ip4.dns'; allowed fields: NAME,UUID,TYPE,TIMESTAMP,TIMESTAMP-REAL,AUTOCONNECT,AUTOCONNECT-PRIORITY,READONLY,DBUS-PATH,ACTIVE,DEVICE,STATE,ACTIVE-PATH.
  • pur și simplu nmcli era tot ce îmi trebuia pe ubuntu 19.04

Răspunde

pentru a obține primul DNS SERVER (numai IP):

  • cat va afișa configurarea DNS
  • grep numai filtre server de nume
  • head va păstra doar primul rând / instanță
  • cut ia IP parte a rândului (a doua coloană cu „” ca separator)

Pentru a pune ip-ul DNS într-o variabilă de mediu, puteți utiliza după cum urmează:

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

Comentarii

  • grep -m 1 nu mai corespunde după prima potrivire, astfel încât să nu ‘ nu trebuie să folosiți head
  • Pentru a ușura conducta și mai mult, grupurile de captură cu regexp Perl sunt foarte îngrijite, iar grep ia un fișier argument: grep -Pom 1 '^nameserver \K\S+' /etc/resolv.conf. Tocmai am scris Capturați grupuri cu expresie regulată grep perl
  • Există ‘ atât IPv4, cât și Servere DNS IPv6. De asemenea, serverele secundare există dintr-un motiv. Pe care o returnează această comandă? Este recomandat să îl luați pe primul și să îi ignorați pe ceilalți?

Răspuns

Dacă utilizați manager de rețea, probabil că primiți toți parametrii de rețea de la serverul dvs. dhcp de la universitatea dvs.

Dacă nu doriți să utilizați shell-ul pentru a verifica setările dns (așa cum este descris de Hesse și Alexios), le puteți vedea din panoul „Informații despre rețea”.

Puteți accesa acest panou apăsând butonul din dreapta al mouse-ului pe pictograma administratorului de rețea și selectând „Informații despre conexiune” din meniu.

Răspunde

Folosind 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 

Pentru compatibilitate, systemd-resolve este o legătură simbolică către resolvectl pe multe distribuții ca pentru Ubuntu 18.10:

$ 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 

Comentarii

  • funcționează perfect pe Ubuntu 18.10.

Răspuns

Am alimentat ora 25 și, de asemenea, a avut un răspuns lent similar în linia de comandă cu comenzile sudo.

nmcli dev show | grep DNS 

a arătat că doar unul dintre cele 3 adaptoare ale mele (două active) avea intrări DNS. Adăugând intrări DNS la un card activ care nu a avut o intrare – presto! Totul este bun și timpul de răspuns este imediat.

Comentarii

  • poate alternativ

Răspuns

În Ubuntu> = 15

nmcli device show <interfacename> | grep IP4.DNS 

Înlocuiți <interfacename> cu a dvs.

În Ubuntu < = 14

Comanda

 nmcli dev list iface <interfacename> | grep IP4 

Înlocuiește <interfacename> cu a ta.

Exemple

 nmcli device show eth0 | grep IP4.DNS 

Sau

 nmcli dev list iface eth0 | grep IP4 

Aceasta va afișa toate serverele DNS (Dacă utilizați mai mult de unul).

Comentarii

  • nmcli dev list iface [devicename] este comanda corectă
  • I haven ‘ nu am observat < interfața > este ascunsă deoarece folosesc < >
  • Pe debian primesc o eroare — $ nmcli dev li st iface eth0 Eroare: ‘ dev ‘ comandă ‘ listă ‘ nu este valid.
  • nmcli este o comandă specifică RH.
  • Acesta este răspunsul corect!

Răspuns

Pe un Fedora 33 recent, puteți utiliza doar

# resolvectl dns Global: Link 2 (enp0s31f6): Link 3 (wlp4s0): 1.1.1.1 8.8.8.8 Link 4 (virbr0): Link 5 (virbr0-nic): 

Pentru a verifica dacă systemd-resolved este activ, faceți cat /etc/resolv.conf Vă va spune cine controlează fișierul.

Dacă doriți mai multe detalii, puteți utiliza resolvectl status resolvectl statistics, puteți, de asemenea, să spălați cache-urile …

Pentru depanare, puteți utiliza journalctl -u systemd-resolved -f -o cat | grep Looking după setarea nivelului pe DEBUG: sudo resolvectl log-level debug

Răspuns

În CentOS, puteți utiliza:

/usr/sbin/named -v 

Răspuns

Pe sistemele în care systemd-resolved NU este instalat:

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

Pe sistemele în care rulează NetworkManager:

$ ( 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 

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *