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í. Vyslovte fgrep 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

  • Toto je užitečné, pokud používáte VPN a NetworkManager . Váš /etc/resolv.conf bude směřovat na váš počítač, přičemž dnsmasq vyřeší názvy tak, jak je nakonfiguruje NetworkManager .
  • V Debianu to vyžaduje balíček network-manager.
  • nm-nástroj není k dispozici v novějších linuxech. například není v ‚ správci sítě ‚ balíčku debian 8.
  • I ‚ Aktualizoval jsem odpověď tak, aby odrážel to, co pracuje pro mě v roce 2016.
  • toto je nejlepší odpověď, vyřešit.conf ne vždy ukázat pravdu

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žbu network 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žívat head
  • 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 

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *