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
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, waarbijdnsmasq
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 servicenetwork
, 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 moethead
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
/etc/nsswitch.conf
dicteert welke naamservices worden gebruikt (DNS, LDAP, enz.) en in welke volgorde. Zegfgrep 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.127.0.0.53