Hoe kan ik controleren welke DNS-server ik gebruik (in Linux)? Ik gebruik een netwerkbeheerder en een bekabelde verbinding met het LAN van mijn universiteit. (Ik probeer uit te zoeken waarom mijn domein niet wordt opgelost)

Antwoord

Je zou redelijke informatie moeten kunnen krijgen in:

$ cat /etc/resolv.conf 

Reacties

  • Houd er echter rekening mee dat (op moderne Linuxen) de inhoud van /etc/nsswitch.conf dicteert welke naamservices worden gebruikt (DNS, LDAP, enz.) en in welke volgorde. Zeg fgrep hosts: /etc/nsswitch.conf. Als het alleen naar DNS verwijst, is /etc/resolv.conf de juiste plaats om naar je naamservers te zoeken. Maar de kans is groot dat u ‘ ook mDNS gebruikt (ook bekend als ZeroConf, ook bekend als Avahi, oftewel Bonjour, enz.), Enz. In dat geval hangen de dingen af van wat u ‘ hergebruiken.
  • Dit bestand verwijst doorgaans naar 127.0.1.1 op Ubuntu – het is ‘ s de lokale DNS-cacheserver, niet de daadwerkelijke upstream.
  • @BarryKelly Controleer wat uw router gebruikt, en vervolgens
  • En als u meerdere upstream-servers heeft geconfigureerd? Hoe weet je welke momenteel wordt gebruikt?
  • Zie de antwoorden van @ G32RW of @Lonniebiz voor een robuustere aanpak onder verschillende omstandigheden, bijv. wanneer je een antwoord krijgt zoals 127.0.0.53

Antwoord

Hier “s hoe ik het doe:

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

Dit werkte eerder tot de bovenstaande manier:

nm-tool | grep DNS 

Op Debian heeft u het netwerkbeheerderpakket geïnstalleerd.

Reacties

  • Deze is handig als je VPN en gebruikt NetworkManager . Uw /etc/resolv.conf verwijst naar uw machine, waarbij dnsmasq namen herleidt zoals geconfigureerd door NetworkManager .
  • Op Debian vereist dit het network-manager -pakket.
  • nm-tool is niet beschikbaar in nieuwere linuxen. het is bijvoorbeeld niet beschikbaar in het ‘ netwerkbeheerder ‘ pakket van debian 8.
  • I ‘ hebben het antwoord bijgewerkt om weer te geven wat werkt voor mij in 2016.
  • dit is het beste antwoord, resolved.conf laat niet altijd de waarheid zien

Antwoord

Gebruik op systemen met systemd:

systemd-resolve --status 

Reacties

  • systemd-resol: unrecognized option ‘ –status ‘
  • Zegt Failed to get global data: Unit dbus-org.freedesktop.resolve1.service not found.
  • Dit is de nieuwe standaardmanier om het te doen in Ubuntu 18.04 Bionic Beaver – wen er maar aan, iedereen!
  • Dit is de enige oplossing die voor mij werkte, aangezien de anderen 127.0.0.53 teruggaven.
  • Wat lees ik? Ik zie alleen DNSSEC-records.

Answer

Ik denk dat je DNS ook kunt opvragen en het zal je laten zien wat server heeft het resultaat geretourneerd. Probeer dit:

dig yourserver.somedomain.xyz 

En het antwoord zou u moeten vertellen welke server (s) het resultaat hebben geretourneerd. De output waarin je “geïnteresseerd bent” zal er ongeveer zo uitzien:

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

Je kunt ook dig vragen om een specifieke DNS-server met behulp van dig @server_ip

Reacties

  • Op Debian vereist dit de dnsutils -pakket.
  • Als u een DNS-masking / caching-service gebruikt die op uw lokale computer wordt uitgevoerd, zal deze de echte DNS-servers verbergen.
  • Ubuntu 18.04 laat alleen de lokale dns cache zien: SERVER: 127.0.0.53#53(127.0.0.53)

Answer

Voer gewoon een, nslookup uit. Een deel van de resultaten omvat de server die het gebruikt.

In het onderstaande voorbeeld laat het zien dat de gebruikte DNS-server 8.8.8.8 is.

$ 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 

Reacties

  • kun je een voorbeeld geven van wat je in de prompt moet invoeren?
  • Voorbeeld: $ nslookup www.google.com
  • Op Debian vereist dit het dnsutils pakket.
  • Op een recente Ubuntu verwijst dit opnieuw naar de lokale cacheserver 127.0.0.1, zoals al werd gesuggereerd in deze opmerking
  • In CentOS 7 het stopt met een fout, maar het is een vm, dus ik deed nslookup google.com in de Windows-host en ik vond de naamserver. Voeg het toe in /etc/resolv.conf zoals: nameserver xx.xx.xx.xx en herstart service network, en alles is in orde. U prijzen.

Antwoord

Met het nieuwe network-manager commando nmcli, doe dit:

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

Op nieuwere versies van netwerkbeheerder (zoals in Ubuntu 16.04), de veldnamen zijn iets anders:

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

Als u de verbindingsnaam niet weet, gebruik dan:

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

Bijvoorbeeld, in oude versies van 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 

Reacties

  • Mijn resultaten : order «con» «show» is not valid.
  • Het werkt prima voor mij met netwerkbeheerder 1.0.4 op Ubuntu 15.10. Misschien heb je een oudere versie?
  • De indeling in tabelvorm is behoorlijk slecht. Ik hoop een kolomachtige indeling te krijgen die lijkt op Powershell.
  • Geeft als resultaat Error: invalid field 'ip4.dns'; allowed fields: NAME,UUID,TYPE,TIMESTAMP,TIMESTAMP-REAL,AUTOCONNECT,AUTOCONNECT-PRIORITY,READONLY,DBUS-PATH,ACTIVE,DEVICE,STATE,ACTIVE-PATH.
  • gewoon nmcli was alles wat ik nodig had op ubuntu 19.04

Antwoord

om te krijgen de eerste DNS-SERVER (alleen IP):

  • cat voert DNS-configuratie uit
  • grep alleen filters nameserver
  • head zal alleen de eerste rij / instantie behouden
  • cut neem het ip deel van de rij (tweede kolom met “” als scheidingsteken)

Om DNS ip in een omgevingsvariabele te plaatsen, zou je als volgt kunnen gebruiken:

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

Reacties

  • grep -m 1 stopt met matchen na eerste match, dus ‘ t moet head gebruiken
  • Om de pijplijn nog lichter te maken, is het vastleggen van groepen met Perl-regexp erg netjes en neemt grep een bestand argument: grep -Pom 1 '^nameserver \K\S+' /etc/resolv.conf. Heeft zojuist Capture groepen met grep perl reguliere expressie
  • Er ‘ s zowel IPv4 als IPv6 DNS-servers. Er is ook een reden voor secundaire servers. Welke retourneert deze opdracht? Is het aan te raden om de eerste te nemen en de andere te negeren?

Answer

Als u netwerkbeheerder waarschijnlijk krijg je alle netwerkparameters van je dhcp-server op je universiteit.

Als je je shell niet wilt gebruiken om je dns-instellingen te controleren (zoals beschreven door hesse en Alexios), kun je ze zien vanuit het paneel “Netwerkinformatie”.

U kunt dit paneel bereiken door met de rechtermuisknop op het netwerkbeheerderpictogram te drukken en “Verbindingsinformatie” te selecteren in het menu.

Antwoord

Gebruik 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 

Voor compatibiliteit is systemd-resolve een symbolische link naar resolvectl op veel distributies voor 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 

Reacties

  • werkt perfect op Ubuntu 18.10.

Answer

Ik heb Fed ora 25 en had ook een vergelijkbare trage reactie op de opdrachtregel op sudo-opdrachten.

nmcli dev show | grep DNS 

toonde aan dat slechts één van mijn 3 adapters (twee actieve) DNS-vermeldingen had. Door DNS-vermeldingen toe te voegen aan de enige actieve kaart die “geen invoer had – presto! Alles is goed en de responstijd is onmiddellijk.

Reacties

  • misschien alternatief

Answer

In Ubuntu> = 15

nmcli device show <interfacename> | grep IP4.DNS 

Vervang <interfacename> door de jouwe.

In Ubuntu < = 14

Het commando

 nmcli dev list iface <interfacename> | grep IP4 

Vervang <interfacename> door de jouwe.

Voorbeelden

 nmcli device show eth0 | grep IP4.DNS 

Of

 nmcli dev list iface eth0 | grep IP4 

Hiermee worden alle DNS-servers weergegeven (als u meer dan one).

Reacties

  • nmcli dev list iface [devicename] is het juiste commando
  • I heb ‘ t opgemerkt dat < interface > is verborgen omdat ik >
  • Op debian krijg ik een foutmelding — $ nmcli dev li st iface eth0 Fout: ‘ dev ‘ commando ‘ lijst ‘ is niet geldig.
  • nmcli is een RH-specifiek commando.
  • Dit is het juiste antwoord!

Answer

Op een recente Fedora 33 kun je gewoon

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

gebruiken om te controleren of systemd-resolved is actief, do cat /etc/resolv.conf Het zal je vertellen wie het bestand beheert.

Als je meer details wilt, je kunt resolvectl status resolvectl statistics gebruiken, je kunt ook caches leegmaken …

Om problemen op te lossen, kunt u journalctl -u systemd-resolved -f -o cat | grep Looking gebruiken nadat u het niveau hebt ingesteld op DEBUG: sudo resolvectl log-level debug

Answer

In CentOS kun je gebruiken:

/usr/sbin/named -v 

Antwoord

Op systemen waarop systemd-resolved NIET is geïnstalleerd:

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

Op systemen waarop NetworkManager wordt uitgevoerd:

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

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *