Hvordan kan jeg sjekke hvilken DNS-server jeg bruker (i Linux)? Jeg bruker nettverksadministrator og en kablet forbindelse til universitetets LAN. (Jeg prøver å finne ut hvorfor domenet mitt ikke blir løst)

Svar

Du bør kunne få rimelig informasjon i:

$ cat /etc/resolv.conf 

Kommentarer

  • Vær imidlertid oppmerksom på at (på moderne Linuxen) innholdet i /etc/nsswitch.conf dikterer hvilke navnetjenester som brukes (DNS, LDAP, etc) og i hvilken rekkefølge. Si fgrep hosts: /etc/nsswitch.conf. Hvis det bare refererer til DNS, er /etc/resolv.conf det rette stedet å lete etter navneserverne dine. Men sjansen er stor for at du ‘ også bruker mDNS (aka ZeroConf, aka Avahi, aka Bonjour, etc) osv. I så fall avhenger ting av hva du ‘ bruker.
  • Denne filen peker vanligvis på 127.0.1.1 på Ubuntu – den ‘ er den lokale DNS-cache-serveren, ikke den faktiske oppstrøms.
  • @BarryKelly Sjekk hva ruteren din bruker, da
  • Og hvis du har konfigurert flere oppstrøms servere? Hvordan vite hvilken som for øyeblikket brukes?
  • Se svarene fra @ G32RW eller @Lonniebiz for en mer robust tilnærming under forskjellige omstendigheter, f.eks. når du får svar som 127.0.0.53

Svar

Her hvordan jeg gjør det:

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

Denne fungerte tidligere til veien ovenfor:

nm-tool | grep DNS 

På Debian må du ha nettverksadministratorpakken installert.

Kommentarer

  • Denne er nyttig hvis du bruker VPN og NetworkManager . /etc/resolv.conf peker på maskinen din, med dnsmasq navn som er konfigurert av NetworkManager .
  • På Debian krever dette network-manager -pakken.
  • nm-verktøyet er ikke tilgjengelig i nyere linuxer. for eksempel er det ikke i ‘ nettverksadministrator ‘ pakke med debian 8.
  • I ‘ har oppdatert svaret for å reflektere hva jobber for meg i 2016.
  • dette er det beste svaret, resol.conf viser ikke alltid sannheten

Svar

På systemer som kjører systemd bruk:

systemd-resolve --status 

Kommentarer

  • systemd-løse: ukjent alternativ ‘ –status ‘
  • Sier Failed to get global data: Unit dbus-org.freedesktop.resolve1.service not found.
  • Dette er den nye standard måten å gjøre det på Ubuntu 18.04 Bionic Beaver – bli vant til det, alle sammen!
  • Dette er den eneste løsning som fungerte for meg, da de andre returnerte 127.0.0.53
  • Hva leser jeg? Jeg ser bare DNSSEC-poster.

Svar

Jeg tror du også kan spørre DNS og det vil vise deg hva serveren returnerte resultatet. Prøv dette:

dig yourserver.somedomain.xyz 

Og svaret skal fortelle deg hvilken server (e) som returnerte resultatet. Utgangen du er interessert i, vil se ut slik:

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

Du kan også be dig om å spørre en bestemt DNS-server ved å bruke dig @server_ip

Kommentarer

  • På Debian krever dette dnsutils -pakke.
  • Hvis du bruker en DNS-maskering / caching-tjeneste som kjøres på din lokale maskin, vil den skjule de virkelige DNS-serverne.
  • Ubuntu 18.04 viser bare den lokale dns-cachen: SERVER: 127.0.0.53#53(127.0.0.53)

Svar

Bare gjør en nslookup . En del av resultatene inkluderer serveren den bruker.

I eksemplet nedenfor viser det at DNS-serveren som brukes er på 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 

Kommentarer

  • kan du gi et eksempel på hva du skal skrive inn i meldingen?
  • Eksempel: $ nslookup www.google.com
  • På Debian krever dette dnsutils -pakken.
  • På en nylig Ubuntu peker dette igjen til den lokale hurtigbuffer-serveren 127.0.0.1 som allerede antydet i denne kommentaren
  • I CentOS 7 avsluttes det med feil, men det er en vm så jeg gjorde nslookup google.com i Windows-verten, og jeg fant navneserveren. Legg det til i /etc/resolv.conf som: nameserver xx.xx.xx.xx og start tjenesten network, og alt er i orden. Hylle deg.

Svar

Med den nye network-manager kommandoen nmcli, gjør dette:

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

På nyere versjoner av nettverksadministrator (som i Ubuntu 16.04), vil feltnavnene er litt forskjellige:

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

Hvis du ikke vet tilkoblingsnavnet, bruk:

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

For eksempel på gamle versjoner av 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 

Kommentarer

  • Resultatene mine : order «con» «show» is not valid.
  • Det fungerer bra for meg med nettverksadministrator 1.0.4 på Ubuntu 15.10. Kanskje du har en eldre versjon?
  • Tabellformatet er ganske dårlig. Jeg håper å få et kolonnelignende format som ligner på Powershell.
  • Returnerer Error: invalid field 'ip4.dns'; allowed fields: NAME,UUID,TYPE,TIMESTAMP,TIMESTAMP-REAL,AUTOCONNECT,AUTOCONNECT-PRIORITY,READONLY,DBUS-PATH,ACTIVE,DEVICE,STATE,ACTIVE-PATH.
  • bare nmcli var alt jeg trengte på ubuntu 19.04

Svar

for å få den første DNS-SERVEREN (bare IP):

  • cat sender ut DNS-konfigurasjon
  • grep filtre navneserver
  • head vil bare beholde den første raden / forekomsten
  • cut ta ip del av raden (andre kolonne med «» som skilletegn)

For å sette DNS ip i en miljøvariabel, kan du bruke følgende:

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

Kommentarer

  • grep -m 1 slutter å matche etter første kamp, slik at du ikke ‘ må ikke bruke head
  • For å lette rørledningen enda mer er fangstgrupper med Perl regexp veldig ryddig, og grep tar en fil argument: grep -Pom 1 '^nameserver \K\S+' /etc/resolv.conf. Bare skrev opp Fang grupper med grep perl regulært uttrykk
  • Der ‘ er både IPv4 og IPv6 DNS-servere. Også sekundære servere eksisterer av en grunn. Hvilken kommando returnerer? Det anbefales å ta den første, og bare ignorere de andre?

Svar

Hvis du bruker nettverksansvarlig får du sannsynligvis alle nettverksparametere fra dhcp-serveren din på universitetet.

Hvis du ikke vil bruke skallet ditt til å sjekke dns-innstillingene dine (som beskrevet av hesse og Alexios), kan du se dem fra panelet «Nettverksinformasjon».

Du kan nå dette panelet ved å trykke på høyre museknapp på ikonet for nettverksadministrator og velge «Tilkoblingsinformasjon» fra menyen.

Svar

Bruk 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 

For kompatibilitet er systemd-resolve en symbolsk lenke til resolvectl på mange distribusjoner for 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 

Kommentarer

  • fungerer perfekt på Ubuntu 18.10.

Svar

Jeg har Fed ora 25 og hadde også lignende sakte respons på kommandolinjen til sudo-kommandoer.

nmcli dev show | grep DNS 

viste at bare en av mine 3 kort (to aktive) hadde DNS-oppføringer. Ved å legge til DNS-oppføringer til det ene aktive kortet som ikke hadde en oppføring – presto! Alt er bra og responstid er øyeblikkelig.

Kommentarer

  • kanskje alternativt

Svar

I Ubuntu> = 15

nmcli device show <interfacename> | grep IP4.DNS 

Erstatt <interfacename> med ditt.

I Ubuntu < = 14

Kommandoen

 nmcli dev list iface <interfacename> | grep IP4 

Erstatt <interfacename> med din.

Eksempler

 nmcli device show eth0 | grep IP4.DNS 

Eller

 nmcli dev list iface eth0 | grep IP4 

Dette viser alle DNS-servere (Hvis du bruker mer enn en).

Kommentarer

  • nmcli dev list iface [devicename] er riktig kommando
  • I havn ‘ t lagt merke til at < grensesnitt > er skjult siden jeg bruker < >
  • På debian får jeg en feil — $ nmcli dev li st iface eth0 Feil: ‘ dev ‘ kommando ‘ liste ‘ er ikke gyldig.
  • nmcli er en RH-spesifikk kommando.
  • Dette er riktig svar!

Svar

På en nylig Fedora 33 kan du bare bruke

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

For å sjekke om systemd-resolved er aktiv, gjør cat /etc/resolv.conf Det vil fortelle deg hvem som styrer filen.

Hvis du vil ha mer informasjon, du kan bruke resolvectl status resolvectl statistics, du kan også spyle cacher …

For å feilsøke, kan du bruke journalctl -u systemd-resolved -f -o cat | grep Looking etter å ha satt nivået til DEBUG: sudo resolvectl log-level debug

Svar

I CentOS kan du bruke:

/usr/sbin/named -v 

Svar

På systemer der systemd-resolved IKKE er installert:

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

På systemer der NetworkManager kjører:

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

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *