Jak mohu zjistit, který server DNS používám (v systému Linux)? Používám správce sítě a kabelové připojení k síti LAN mé univerzity. (Snažím se zjistit, proč moje doména není vyřešena)
Odpovědět
Měli byste být schopni získat rozumné informace v:
$ cat /etc/resolv.conf
Komentáře
- Mějte však na paměti, že (na moderních Linuxech) obsah
/etc/nsswitch.conf
určuje, jaké služby jmen se používají (DNS, LDAP atd.) a v jakém pořadí. Vyslovtefgrep hosts: /etc/nsswitch.conf
. Pokud odkazuje pouze na DNS, je/etc/resolv.conf
tím správným místem pro hledání vašich jmenných serverů. Je ale pravděpodobné, že ‚ používáte také mDNS (aka ZeroConf, aka Avahi, aka Bonjour atd.) Atd. V takovém případě věci závisí na tom, co ‚ opětovné použití. - Tento soubor v systému Ubuntu obvykle ukazuje na 127.0.1.1 – jedná se o ‚ místní server mezipaměti DNS, nikoli o skutečný upstream.
- @BarryKelly Zkontrolujte, co váš router používá, pak
- A pokud máte nakonfigurováno několik upstream serverů? Jak zjistit, který z nich se aktuálně používá?
- Podívejte se na odpovědi @ G32RW nebo @Lonniebiz pro robustnější přístup za různých okolností, např. když dostanete odpověď jako
127.0.0.53
odpověď
zde „Jak to dělám:
( nmcli dev list || nmcli dev show ) 2>/dev/null | grep DNS
Toto fungovalo předchozí výše:
nm-tool | grep DNS
V Debianu musíte mít balíček správce sítě nainstalováno.
Komentáře
Odpověď
V systémech se systémem systemd použijte:
systemd-resolve --status
Komentáře
- systemd-resolve: nerozpoznaná možnost ‚ –status ‚
- Říká
Failed to get global data: Unit dbus-org.freedesktop.resolve1.service not found.
- Toto je nový výchozí způsob, jak to udělat v Bionic Beaver v Ubuntu 18.04 – zvykněte si na to, všichni!
- Toto je jediný řešení, které pro mě fungovalo, protože ostatní vrátili 127.0.0.53
- Co čtu? Vidím pouze záznamy DNSSEC.
Odpověď
Myslím, že můžete také dotazovat DNS a ukáže vám, co server vrátil výsledek. Vyzkoušejte toto:
dig yourserver.somedomain.xyz
A odpověď by vám měla říci, jaké servery vrátily výsledek. Výstup, který vás zajímá, bude vypadat asi takto:
;; 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
Můžete také říct dig
k dotazování konkrétní server DNS pomocí dig @server_ip
komentářů
- v Debianu to vyžaduje
dnsutils
balíček. - Pokud používáte službu maskování / ukládání do mezipaměti DNS, která je spuštěna na místním počítači, skryje se skutečné servery DNS.
- Ubuntu 18.04 právě zobrazuje místní mezipaměť dns:
SERVER: 127.0.0.53#53(127.0.0.53)
odpověď
Stačí udělat nslookup
. Část jeho výsledků zahrnuje server, který používá.
V níže uvedeném příkladu ukazuje, že použitý server DNS je 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
Komentáře
- můžete uvést příklad toho, co je třeba do výzvy zadat?
- Příklad:
$ nslookup www.google.com
- V Debianu to vyžaduje balíček
dnsutils
. - Na nedávném Ubuntu to opět ukazuje na místní server mezipaměti 127.0.0.1, jak již bylo naznačeno v tomto komentáři
- v CentOS 7 to skončí s chybou, ale je to vm, takže jsem
nslookup google.com
v hostiteli Windows a našel jsem nameserver. Přidejte jej do/etc/resolv.conf
jako:nameserver xx.xx.xx.xx
a restartujte službunetwork
a vše je v pořádku. Chvála
Odpověď
Pomocí nového network-manager
příkazu nmcli
, proveďte toto:
nmcli --fields ipv4.dns,ipv6.dns con show [connection_name]
V novějších verzích správce sítě (například v Ubuntu 16.04) se názvy polí se mírně liší:
nmcli --fields ip4.dns,ip6.dns con show [connection_name]
Pokud neznáte název připojení, použijte:
nmcli -t --fields NAME con show --active
Například na starých verzích 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
Komentáře
- Moje výsledky :
order «con» «show» is not valid
. - Se správcem sítě 1.0.4 na Ubuntu 15.10 to funguje dobře. Možná máte starší verzi?
- Tabulkový formát je docela špatný. Doufám, že dostanu sloupcový formát podobný Powershellu.
- Vrátí
Error: invalid field 'ip4.dns'; allowed fields: NAME,UUID,TYPE,TIMESTAMP,TIMESTAMP-REAL,AUTOCONNECT,AUTOCONNECT-PRIORITY,READONLY,DBUS-PATH,ACTIVE,DEVICE,STATE,ACTIVE-PATH.
- jednoduše
nmcli
bylo vše, co jsem na ubuntu 19.04 potřeboval
Odpovědět
získat první DNS SERVER (pouze IP):
-
cat
vypíše konfiguraci DNS -
grep
pouze filtry nameserver -
head
zachová pouze první řádek / instanci -
cut
vezmi si ip část řádku (druhý sloupec s „“ jako oddělovačem)
Chcete-li vložit DNS IP do proměnné prostředí, můžete použít následující:
export THEDNSSERVER=$(cat /etc/resolv.conf |grep -i "^nameserver"|head -n1|cut -d " " -f2)
Komentáře
-
grep -m 1
přestane odpovídat po prvním zápase, takže ‚ Nemusíte používathead
- Aby se potrubí ještě více odlehčilo, je zachycení skupin pomocí Perl regexp velmi přehledné a grep vezme soubor argument:
grep -Pom 1 '^nameserver \K\S+' /etc/resolv.conf
. Právě jsem napsal Zachyťte skupiny pomocí regulárního výrazu grep perl - Existuje ‚ s IPv4 i Servery DNS IPv6. Sekundární servery také existují z nějakého důvodu. Který tento příkaz vrátí? Doporučuje se vzít si první a ostatní prostě ignorovat?
Odpovědět
Pokud používáte Správce sítě pravděpodobně získáte všechny síťové parametry ze serveru dhcp na vaší univerzitě.
Pokud nechcete pomocí svého shellu zkontrolovat nastavení dns (jak je popsáno v hesse a Alexios), můžete je vidět z panelu „Informace o síti“.
Tento panel zobrazíte stisknutím pravého tlačítka myši na ikoně správce sítě a výběrem možnosti „Informace o připojení“ z nabídky.
Odpovědět
Pomocí 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
Kvůli kompatibilitě je systemd-resolve
symbolickým odkazem na resolvectl
v mnoha distribucích jako pro 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
Komentáře
- funguje perfektně na Ubuntu 18.10.
Odpověď
Mám Fed ora 25 a také měl podobnou pomalou odezvu na příkazovém řádku jako příkazy sudo.
nmcli dev show | grep DNS
ukázal, že pouze jeden z mých 3 adaptérů (dva aktivní) měl položky DNS. Přidáním záznamů DNS na jednu aktivní kartu, která záznam neměla – presto! Vše je dobré a doba odezvy je okamžitá.
Komentáře
- možná alternativně
odpověď
v Ubuntu> = 15
nmcli device show <interfacename> | grep IP4.DNS
Nahraďte <interfacename>
vaším.
V Ubuntu < = 14
Příkaz
nmcli dev list iface <interfacename> | grep IP4
Nahraďte <interfacename>
vaším.
Příklady
nmcli device show eth0 | grep IP4.DNS
Nebo
nmcli dev list iface eth0 | grep IP4
Zobrazí se seznam všech serverů DNS (pokud používáte více než jeden).
Komentáře
-
nmcli dev list iface [devicename]
je správný příkaz - I útočiště ‚ si nevšimlo < rozhraní > skryté, protože používám < >
- V debianu se zobrazí chyba — $ nmcli dev li Chyba st iface eth0: ‚ dev ‚ příkaz ‚ seznam ‚ není platný.
- nmcli je specifický příkaz RH.
- Toto je správná odpověď!
Odpověď
Na nedávné Fedoře 33 můžete jednoduše použít
# resolvectl dns Global: Link 2 (enp0s31f6): Link 3 (wlp4s0): 1.1.1.1 8.8.8.8 Link 4 (virbr0): Link 5 (virbr0-nic):
Zkontrolovat, zda systemd-resolved
je aktivní, udělejte cat /etc/resolv.conf
řekne vám, kdo ovládá soubor.
Pokud chcete další podrobnosti, můžete použít resolvectl status
resolvectl statistics
, můžete také vyprázdnit mezipaměti …
Chcete-li problém vyřešit, můžete použít journalctl -u systemd-resolved -f -o cat | grep Looking
po nastavení úrovně na DEBUG: sudo resolvectl log-level debug
Odpověď
V CentOS můžete použít:
/usr/sbin/named -v
Odpověď
V systémech, kde NENÍ nainstalován systemd-resolved
:
$ host -v something.unknown | awk -F "[ #]" "/Received /{print$5}" | uniq 192.168.1.1
Na systémech, kde běží 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/resolv.conf
bude směřovat na váš počítač, přičemždnsmasq
vyřeší názvy tak, jak je nakonfiguruje NetworkManager .network-manager
.