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
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, meddnsmasq
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 tjenestennetwork
, 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 brukehead
- 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
/etc/nsswitch.conf
dikterer hvilke navnetjenester som brukes (DNS, LDAP, etc) og i hvilken rekkefølge. Sifgrep 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.127.0.0.53