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
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, cudnsmasq
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 serviciulnetwork
ș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țihead
- 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
/etc/nsswitch.conf
dictează ce nume de servicii sunt utilizate (DNS, LDAP etc.) și în ce ordine. Spunețifgrep 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.127.0.0.53