Průvodce nastavením DNS v Ubuntu (22.04/24.04): Kontrola, změna a oprava rozlišení názvů

目次

1. Úvod

Když používáte internet na Ubuntu, můžete najednou narazit na problémy jako „webové stránky se nenačítají“, „apt update selže“ nebo „interní názvy serverů nelze vyřešit“.
Jedním překvapivě častým důvodem je konfigurace DNS (rozlišení názvů).

Jednoduše řečeno, DNS je systém, který převádí doménové jméno (například google.com) na IP adresu.
Pokud DNS nefunguje správně, můžete být stále připojeni k síti, ale nebudete moci přistupovat k webovým stránkám ani serverům.

V tomto článku, s hlavním klíčovým slovem „ubuntu dns settings“, jasně uspořádáme a vysvětlíme, jak zkontrolovat a změnit nastavení DNS na Ubuntu přátelským způsobem pro začátečníky.

1.1 Co se v tomto článku naučíte

Na konci tohoto článku budete schopni provést následující úkony:

  • Zkontrolovat aktuální nastavení DNS na Ubuntu
  • Změnit nastavení DNS na Ubuntu Desktop (GUI)
  • Trvale nakonfigurovat DNS na Ubuntu Server (CLI)
  • Pochopit vztah mezi systemd-resolved a /etc/resolv.conf
  • Odhalit a opravit situace, kdy změny DNS se neprojeví nebo rozlišení názvů selže

1.2 Pro koho je tento článek určen

Tento obsah je vhodný pro lidi, jako jsou následující:

  • Jste noví v Ubuntu a pojem „DNS“ vám ještě není úplně jasný
  • Provozujete Ubuntu Server na VPS nebo domácím serveru
  • Vaše síť je připojena, ale web a aktualizace nefungují
  • Chcete „připíchnout“ DNS (použít Google DNS / Cloudflare DNS atd.)

1.3 Nastavení DNS v Ubuntu může být matoucí: „Kde to změnit?“

Nastavení DNS v Ubuntu často působí obtížně, protože neexistuje jen jedno místo, kde „zadáte DNS“.

V závislosti na vašem prostředí může Ubuntu spravovat DNS různými způsoby:

  • Ubuntu Desktop : Často konfigurováno přes GUI (Network Settings)
  • Ubuntu Server : Často spravováno pomocí Netplan (konfigurační soubory)
  • Společná komponenta : systemd-resolved může spravovat rozlišení názvů „za scénou“

Také /etc/resolv.conf — často zmiňované v průvodcích pro síťování — se může chovat odlišně podle vaší instalace Ubuntu a v některých případech úprava přímo v tomto souboru nebude mít žádný efekt.

Pokud to neznáte, můžete snadno skončit v situacích jako:

  • Změnili jste nastavení, ale nic se nezlepšilo
  • Fungovalo — pak se po restartu vrátilo zpět
  • Nevíte, kterému návodu v článku věřit

V tomto článku, abychom se vyhnuli zmatku, systematicky uspořádáme nastavení DNS v Ubuntu a vysvětlíme je jasně.

1.4 Podporované verze Ubuntu

Tento článek předpokládá následující nejčastěji používané verze Ubuntu:

  • Ubuntu 22.04 LTS
  • Ubuntu 24.04 LTS

Nicméně základní koncepty DNS a metody ověřování jsou v podstatě stejné i v jiných verzích.
Pouze drobné detaily (např. názvy souborů Netplan) se mohou lišit.

2. Základy DNS (klíčové pojmy)

Aby bylo možné DNS na Ubuntu správně nastavit, pomůže pochopit—na vysoké úrovni—co DNS dělá a kde se spravuje.
Zde to udržíme přívětivé pro začátečníky a zaměříme se jen na podstatné.

2.1 Co je DNS? (Stačí rychlé vysvětlení)

DNS (Domain Name System) je mechanismus, který převádí doménová jména na IP adresy.

Například můžete v prohlížeči zadat následující adresu:

  • https://www.google.com

Ale počítače obvykle komunikují pomocí IP adres.

  • Číselná „adresa“ jako 142.250.xxx.xxx

DNS tedy pracuje v pozadí a provádí převod jako tento:

  • www.google.com142.250.xxx.xxx

Tento převod se nazývá rozlišení názvu a umožňuje vašemu systému připojit se ke správnému serveru.

Jinými slovy, DNS je jako „telefonní seznam“ nebo „adresář“ internetu.

2.2 Kdy jsou nastavení DNS důležitá

Konfigurace DNS se na Ubuntu stává zvláště podstatnou v následujících situacích:

  • Webové stránky se nenačítají (ale Wi-Fi/LAN je připojeno)
  • apt update nebo aktualizace snap selžou
  • Selhání rozlišení názvů v prostředích Docker nebo Kubernetes
  • Vnitřní názvy hostitelů (např. intra-server.local ) nelze rozlišit
  • Pouze během připojení k VPN nelze rozlišit určité domény
  • Chcete použít DNS blokující reklamy nebo rychlejší DNS

Protože DNS je blízko „jádru“ toho, zda síť funguje, objevuje se neustále při řešení problémů.

2.3 Co je DNS server? (Kde se ptáte?)

Převod DNS není něco, co váš počítač spočítá sám.
Obvykle dotazuje DNS server a obdrží výsledek.

Když Ubuntu provádí rozlišení názvů, obvykle následuje tento tok:

  1. Ubuntu dotazuje DNS server
  2. DNS server odpoví: „Tato doména mapuje na tuto IP“
  3. Ubuntu se připojí k této IP

DNS servery obvykle pocházejí z míst jako:

  • Váš router (domácí Wi-Fi router rozdává DNS)
  • Firemní/vnitřní DNS servery
  • Veřejné DNS (Google DNS / Cloudflare DNS atd.)

Zde jsou známé veřejné možnosti DNS:

  • Google Public DNS : 8.8.8.8 / 8.8.4.4
  • Cloudflare DNS : 1.1.1.1 / 1.0.0.1

Neexistuje jediná „správná“ volba – důležité je vybrat to, co vyhovuje vašemu prostředí a cílům.

2.4 Proč jsou nastavení DNS na Ubuntu trochu složité

Na Windows a některých jiných OS je místo pro změnu DNS relativně přímočaré.
Na Ubuntu však může nastavení variovat, například:

  • Spravováno přes GUI (NetworkManager)
  • Spravováno přes Netplan
  • systemd-resolved centralizuje zpracování DNS
  • /etc/resolv.conf může být odkaz místo „skutečného“ souboru

V důsledku toho, když čtete online průvodce, můžete vidět konfliktní rady jako:

  • „Stačí upravit /etc/resolv.conf
  • „Ne – musíte nakonfigurovat Netplan“
  • „Měli byste změnit nastavení systemd-resolved

Je snadné se ztratit.

Ale nebojte se.
Není to tak, že „všechno je špatně“ – jednoduše správný postup závisí na vaší konfiguraci Ubuntu.

Tento článek také vysvětlí, jak určit, který přístup se vztahuje na vaše nastavení.

2.5 Klíčové soubory a komponenty, které uvidíte v správě DNS na Ubuntu

Rychle definujme termíny, které se běžně objevují v průvodcích pro konfiguraci DNS.

2.5.1 Co je /etc/resolv.conf?

/etc/resolv.conf je tradiční soubor konfigurace DNS používaný v Linuxu dlouhou dobu.

Jeho obsah obvykle vypadá takto:

nameserver 8.8.8.8
nameserver 1.1.1.1

Nicméně na Ubuntu tento soubor není vždy používán přímo.

Na moderním Ubuntu je /etc/resolv.conf často symbolický odkaz, který ukazuje na jiný soubor, jako:

  • Soubor automaticky generovaný systemd-resolved
  • Soubor generovaný NetworkManager

Proto mohou být přímé úpravy přepsány.

2.5.2 Co je systemd-resolved?

systemd-resolved je služba, která spravuje rozlišení názvů DNS na Ubuntu.

Klíčové charakteristiky zahrnují:

  • Usnadňuje centralizaci konfigurace DNS
  • Poskytuje cachování DNS
  • Může zpracovávat více rozhraní (Wi-Fi a VPN atd.)

V závislosti na vašem prostředí to může být praktické „centrum“ konfigurace DNS.

2.5.3 Co je Netplan?

Netplan je systém konfigurace sítě běžně používaný na Ubuntu Server.
Definujete síťová nastavení pomocí YAML souborů.

DNS může být také zahrnuto v konfiguraci Netplan, spolu s:

  • IP adresa
  • Brána
  • DNS servery

Protože můžete spravovat všechno společně, je to standardní přístup pro použití na serveru.

2.6 Nejdůležitější věc při změně DNS: Trvalost

Při nastavování DNS na Ubuntu je nejdůležitější bod – zejména na serverech –:

  • Přežije nastavení restart? (Trvalost)

Někdy můžete změnit DNS dočasně, ale může se vrátit, když:

  • Restartujete
  • Znovu se připojíte k síti
  • DHCP se obnoví
  • VPN se odpojí

V tomto článku se zaměříme ne na „rychlé opravy“, ale na jak správně udržet nastavení DNS na základě vašeho cíle.

3. Jak zkontrolovat aktuální nastavení DNS v Ubuntu

Před změnou nastavení DNS byste měli nejprve potvrdit, co Ubuntu aktuálně používá.
Pokud tento krok přeskočíte, můžete změnit špatné místo a nic se nezlepší.

V této sekci projdeme spolehlivé způsoby, jak zkontrolovat nastavení DNS v Ubuntu, včetně prostředí Desktop i Server.

3.1 Zkontrolujte DNS pomocí resolvectl (doporučeno)

Pokud vaše Ubuntu používá systemd-resolved, nejpřesnější způsob, jak zkontrolovat DNS, je resolvectl.

Spusťte tento příkaz:

resolvectl status

Uvidíte informace jako:

  • aktuálně používané DNS servery
  • Které rozhraní (Wi‑Fi / Ethernet / VPN) poskytuje DNS
  • Vyhledávací domény (pokud jsou nastaveny)

Pokud výstup ukazuje DNS server, který jste nečekali (např. IP vašeho routeru), může to vysvětlovat pomalé nebo nestabilní překládání názvů.

3.2 Zkontrolujte /etc/resolv.conf (ale buďte opatrní)

Mnoho průvodců zmiňuje kontrolu /etc/resolv.conf, protože historicky obsahuje nastavení DNS.

Můžete to zkontrolovat pomocí:

cat /etc/resolv.conf

Typický výstup může vypadat takto:

nameserver 127.0.0.53
options edns0 trust-ad
search example.local

Pokud vidíte 127.0.0.53, obvykle to znamená, že Ubuntu používá systemd-resolved a /etc/resolv.conf ukazuje na lokální stub resolver.

V takovém případě je lepší skutečné DNS servery ověřit pomocí resolvectl status.

3.3 Ověřte, zda je /etc/resolv.conf symbolickým odkazem

V Ubuntu je /etc/resolv.conf často symbolický odkaz (symlink).
Pokud ano, přímé úpravy nemusí přetrvávat.

Zkontrolujte to pomocí:

ls -l /etc/resolv.conf

Pokud uvidíte něco podobného, jedná se o symlink:

/etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

To je normální na moderním Ubuntu a znamená, že DNS je spravováno systémovými službami, nikoli úpravou tohoto souboru přímo.

3.4 Zkontrolujte DNS pomocí NetworkManager (uživatelé Desktopu)

Pokud používáte Ubuntu Desktop, DNS je často spravováno pomocí NetworkManager.
Můžete zkontrolovat nastavení aktivního připojení tímto příkazem:

nmcli dev show

Hledejte řádky jako:

  • IP4.DNS[1]
  • IP4.DNS[2]

To ukazuje DNS servery, které NetworkManager aktuálně používá pro vaše připojení.

3.5 Rychlý test funkce DNS (funguje překládání názvů?)

I když jsou vaše DNS servery nakonfigurovány, překládání názvů může stále selhat kvůli síťovým nebo firewallovým problémům.
Proto je užitečné spustit jednoduchý test.

Vyzkoušejte toto:

ping -c 1 google.com

Pokud se úspěšně rozřeší a pingne, DNS pravděpodobně funguje.

Pokud získáte chybu jako:

ping: google.com: Temporary failure in name resolution

To silně naznačuje, že DNS selhává.

Pro potvrzení, že síť funguje, můžete také přímo pingnout veřejnou IP adresu:

ping -c 1 1.1.1.1

Pokud ping na IP funguje, ale doménová jména selhávají, problém je téměř jistě spojen s DNS.

4. Jak změnit nastavení DNS v Ubuntu Desktop (metoda GUI)

Pokud používáte Ubuntu Desktop, nejjednodušší a nejbezpečnější způsob, jak změnit nastavení DNS, je přes grafické nastavení sítě.
Tato metoda je vhodná pro začátečníky a nastavení přetrvává po restartu.

4.1 Změna DNS v Ubuntu Desktop (Wi‑Fi)

Postupujte podle těchto kroků pro změnu DNS pro Wi‑Fi připojení:

  1. Otevřete Nastavení
  2. Přejděte na Síť (nebo Wi‑Fi )
  3. Vyberte vaše připojené Wi‑Fi síť
  4. Klikněte na ikonu ozubeného kola (nastavení připojení)
  5. Otevřete kartu IPv4
  6. Najděte DNS a přepněte z Automatické na Manuální
  7. Zadejte vámi preferované DNS servery
  8. Uložte nastavení

Příklady DNS serverů, které můžete zadat:

  • Cloudflare: 1.1.1.1, 1.0.0.1
  • Google: 8.8.8.8, 8.8.4.4

Po uložení se odpojte a znovu připojte k Wi‑Fi, nebo vypněte a zapněte Wi‑Fi, aby se změna projevila.

4.2 Změna DNS v Ubuntu Desktop (drátové Ethernet)

Pro drátová připojení jsou kroky téměř stejné:

  1. Otevřete Nastavení
  2. Přejděte na Síť
  3. V sekci Drátové klikněte na ikonu ozubeného kola
  4. Otevřete kartu IPv4
  5. Přepněte DNS z Automatického na Manuální
  6. Zadejte DNS servery
  7. Uložte

Toto je stabilní přístup pro stolní počítače, zejména pokud chcete mít konzistentní chování DNS pro vývojové práce nebo vzdálený přístup.

4.3 Nastavení DNS pro IPv6 (volitelné)

Pokud vaše prostředí používá IPv6, můžete také chtít nakonfigurovat DNS na kartě IPv6.

Příklady IPv6 DNS serverů:

  • Cloudflare IPv6: 2606:4700:4700::1111 / 2606:4700:4700::1001
  • Google IPv6: 2001:4860:4860::8888 / 2001:4860:4860::8844

Pokud IPv6 nepoužíváte nebo si nejste jisti, můžete nechat IPv6 DNS nastavené na automatické.

4.4 Ověřte, že změna funguje

Po změně DNS přes GUI ověřte pomocí:

resolvectl status

Nebo pokud dáváte přednost výstupu NetworkManageru:

nmcli dev show | grep DNS

Pak znovu otestujte rozlišení názvů:

ping -c 1 google.com

Pokud to funguje, vaše nastavení DNS bylo úspěšně použito.

4.5 Častá chyba: „Stále používá DNS routeru“

Někdy, i po ručním nastavení DNS, můžete stále vidět IP adresu routeru jako DNS server.

K tomu může dojít, pokud:

  • Připojení se nepřipojilo znovu správně
  • Je aktivní jiný síťový profil
  • VPN přepisuje nastavení DNS

V takových případech zkuste odpojit a znovu připojit, nebo dočasně vypnout VPN, a poté znovu zkontrolovat pomocí resolvectl status.

5. Jak změnit nastavení DNS na Ubuntu Serveru (metoda Netplan)

Na Ubuntu Serveru je konfigurace DNS obvykle spravována pomocí Netplan.
Tato metoda se liší od Ubuntu Desktop, protože typicky upravujete soubor YAML a aplikujete konfiguraci.

V této sekci se naučíte, jak bezpečně aktualizovat nastavení DNS pomocí Netplanu, včetně toho, jak se vyhnout častým chybám v YAML.

5.1 Ověřte název síťového rozhraní

Nejprve ověřte název vašeho síťového rozhraní.
Na serverech mají názvy rozhraní často podobu ens3, ens160, enp0s3 atd.

Použijte tento příkaz:

ip link

Hledejte rozhraní, které je „UP“ a používá se pro vaše aktivní připojení.

5.2 Najděte konfigurační soubor Netplan

Konfigurační soubory Netplanu jsou obvykle umístěny v /etc/netplan/.

Vypsat je můžete pomocí:

ls /etc/netplan/

Můžete vidět soubory jako:

00-installer-config.yaml
01-netcfg.yaml

Obvykle existuje jeden hlavní YAML soubor. To je ten, který budete upravovat.

5.3 Upravit Netplan YAML pro nastavení DNS serverů

Otevřete soubor v editoru, například nano:

sudo nano /etc/netplan/00-installer-config.yaml

Níže je typický příklad pro server používající DHCP, kde ručně nastavujeme DNS servery:

network:
  version: 2
  ethernets:
    ens3:
      dhcp4: true
      nameservers:
        addresses:
          - 1.1.1.1
          - 1.0.0.1

Klíčové body:

  • nameservers musí být správně zarovnané (v YAML záleží na odsazení).
  • addresses je seznam, takže pro každý DNS server použijte -.

Pokud váš server používá statickou IP, konfigurace DNS bude umístěna vedle konfigurace statické adresy. Příklad:

network:
  version: 2
  ethernets:
    ens3:
      dhcp4: false
      addresses:
        - 192.168.1.50/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

Toto nastavení je běžné pro servery, které potřebují předvídatelné síťování.

5.4 Bezpečně aplikovat změny Netplan

Po úpravě YAML aplikujte konfiguraci.

Doporučený nejbezpečnější postup:

sudo netplan try

netplan try dočasně použije změny a požádá o potvrzení.
Pokud ztratíte síťové připojení (např. SSH spadne), změny by se měly automaticky po uplynutí časového limitu vrátit.

Pokud je vše v pořádku, můžete změny aplikovat trvale:

sudo netplan apply

5.5 Ověřit nastavení DNS na serveru

Zkontrolujte aktuální DNS pomocí:

resolvectl status

Pak ověřte, že rozlišení názvů funguje:

ping -c 1 google.com

Pokud se úspěšně rozřeší, konfigurace DNS funguje.

5.6 Běžné chyby Netplan a jak se jim vyhnout

Netplan YAML je přísný. Mnoho problémů vzniká kvůli odsazení nebo syntaktickým chybám.

Chyby v odsazení

YAML používá mezery, ne tabulátory. Jedna špatná úroveň odsazení může rozbít vše.

Nesprávný název rozhraní

Pokud nastavíte ens3, ale vaše skutečné rozhraní je ens160, změny DNS se neaplikují.

Zapomněli jste použít konfiguraci

Pokud upravíte soubor, ale nespustíte netplan apply, nic se nezmění.

6. Doporučené veřejné poskytovatele DNS (Kterého si vybrat?)

Výběr poskytovatele DNS ovlivňuje rychlost, stabilitu, soukromí a spolehlivost.
Zde jsou běžné veřejné služby DNS, které mnoho lidí používá na Ubuntu.

6.1 Cloudflare DNS (Rychlé a populární)

Cloudflare DNS je známé pro rychlost a silnou globální infrastrukturu.

  • IPv4: 1.1.1.1 / 1.0.0.1
  • IPv6: 2606:4700:4700::1111 / 2606:4700:4700::1001

6.2 Google Public DNS (Stabilní a široce používaný)

Google DNS je mimořádně známé a má tendenci být stabilní, zejména při řešení problémů.

  • IPv4: 8.8.8.8 / 8.8.4.4
  • IPv6: 2001:4860:4860::8888 / 2001:4860:4860::8844

6.3 Quad9 (Zaměřené na bezpečnost)

Quad9 je často voleno uživateli, kteří chtějí blokování malwaru a DNS rozlišení zaměřené na bezpečnost.

  • IPv4: 9.9.9.9 / 149.112.112.112
  • IPv6: 2620:fe::fe / 2620:fe::9

6.4 Který DNS si vybrat?

Neexistuje jediné nejlepší řešení pro všechny, ale zde je jednoduchý návod:

  • Rychlost především: Cloudflare
  • Stabilita/řešení problémů: Google DNS
  • Zaměřeno na bezpečnost: Quad9

Pokud si nejste jisti, začněte s Cloudflare nebo Google DNS a zjistěte, zda se vaše prohlížení a aktualizace stanou stabilnějšími.

7. Řešení problémů: Změny DNS se neaplikují nebo jmenné rozlišení stále selhává

Změnili jste nastavení DNS v Ubuntu, ale stále nefunguje.
Tato situace je běžná a příčina je často něco jednoduchého, jako je cache, konfliktní nastavení nebo přepsání VPN.

V této sekci projdeme praktické kroky řešení problémů, které dobře fungují na Ubuntu 22.04/24.04.

7.1 První kontrola: Můžete pingnout IP adresu?

Než se zaměříte jen na DNS, potvrďte, zda síť samotná funguje.

Zkuste pingnout veřejnou IP:

ping -c 1 1.1.1.1

Pokud to funguje, vaše síťové připojení je pravděpodobně v pořádku.

Dále otestujte doménové jméno:

ping -c 1 google.com

Pokud ping na IP funguje, ale doména selže, silně to naznačuje problém s DNS.

7.2 Zkontrolujte, který DNS se skutečně používá

Někdy nastavíte DNS, ale Ubuntu stále používá jiný DNS server kvůli DHCP, VPN nebo jinému rozhraní.

Zkontrolujte aktivní DNS servery pomocí:

resolvectl status

Hledejte:

  • Které rozhraní je „Current DNS Server“
  • Zda DNS servery odpovídají tomu, co jste nakonfigurovali

Pokud stále vidíte IP vašeho routeru (například 192.168.1.1), vaše ruční nastavení DNS nemusí být správně aplikováno.

7.3 Vyprázdnění DNS cache (systemd-resolved)

Ubuntu může cachovat DNS výsledky. I po změně DNS mohou zůstávat staré cachované výsledky.

Vyprázdněte cache pomocí:

sudo resolvectl flush-caches

Poté testujte znovu:

ping -c 1 google.com

7.4 Restartování služeb rozlišení názvů

Pokud vyprázdnění cache nestačí, restartování služby resolveru může pomoci.

Restartujte systemd-resolved:

sudo systemctl restart systemd-resolved

Pokud používáte Ubuntu Desktop, můžete také restartovat NetworkManager:

sudo systemctl restart NetworkManager

Poté zkontrolujte DNS znovu pomocí:

resolvectl status

7.5 DNS přepsáno DHCP (nastavení routeru)

V mnoha domácích sítích DHCP z routeru automaticky přiřazuje nastavení DNS.

I když nastavíte DNS ručně, může být přepsáno, pokud je vaše připojení stále nastaveno jako „Automatic“.

Pro opravu:

  • Na desktopu: ujistěte se, že DNS je nastaveno na Manuální v GUI
  • Na serveru: ujistěte se, že DNS je definováno pod nameservers v Netplanu

7.6 VPN nebo firemní síť přepisuje DNS

VPN software často automaticky mění DNS, aby směroval rozlišení názvů přes VPN tunel.

Běžné příznaky zahrnují:

  • Pouze interní domény se rozlišují, když je VPN připojena
  • Veřejné webové stránky přestanou fungovat po připojení k VPN
  • DNS servery se změní, když je VPN aktivována

Pro potvrzení porovnejte DNS před a po připojení VPN:

resolvectl status

Pokud se DNS neočekávaně změní, pravděpodobně ji přepisuje VPN.

V takových případech může být nutné nastavit DNS přímo v klientovi VPN, nebo upravit nastavení split‑DNS podle vaší VPN konfigurace.

7.7 Přímé testování DNS pomocí dig nebo nslookup

Někdy ping nestačí. Je užitečné dotazovat DNS přímo.

Pokud je k dispozici dig:

dig google.com

Pokud dig není nainstalováno, můžete jej nainstalovat pomocí:

sudo apt update
sudo apt install -y dnsutils

Můžete také použít nslookup:

nslookup google.com

Pokud DNS dotaz vyprší, obvykle to znamená, že nakonfigurovaný DNS server je nedostupný nebo blokovaný.

7.8 Firewall nebo síťová omezení blokující DNS

DNS typicky používá port 53 (UDP a někdy TCP).
Některé sítě blokují externí DNS, aby vás přiměly používat jejich vlastní DNS server.

V takovém případě veřejné DNS jako 1.1.1.1 nemusí fungovat a může být nutné použít DNS poskytované sítí.

To je obzvláště časté na:

  • Firemním Wi‑Fi
  • Hotelových sítích
  • Veřejných sítích

8. Pokročilé: Porozumění /etc/resolv.conf a systemd-resolved

Pokud hledáte „ubuntu dns settings“, často narazíte na zmínku o /etc/resolv.conf.
Na moderním Ubuntu tento soubor nemusí fungovat tak, jak popisují starší Linux tutoriály.

Zde je hlavní myšlenka:

  • /etc/resolv.conf je často automaticky generováno
  • Ubuntu často používá systemd-resolved k správě DNS

8.1 Proč úprava /etc/resolv.conf přímo často selhává

Na mnoha Ubuntu systémech je /etc/resolv.conf symbolickým odkazem na soubor spravovaný systémovými službami.

Ověřte symbolický odkaz:

ls -l /etc/resolv.conf

Pokud uvidíte něco jako:

/etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

Pak ruční úpravy nejsou trvalé, protože soubor je automaticky regenerován.

8.2 Význam 127.0.0.53

Pokud váš /etc/resolv.conf obsahuje:

nameserver 127.0.0.53

Neznamená to, že „váš DNS server je rozbitý“.

Obvykle to znamená:

  • Ubuntu používá lokální stub resolver
  • systemd-resolved zpracovává DNS dotazy interně

Skutečné upstream DNS servery jsou nastaveny jinde a lze je zkontrolovat pomocí:

resolvectl status

8.3 Kdy můžete potřebovat konfigurovat systemd-resolved přímo

Ve většině případů není nutné ručně upravovat konfiguraci systemd-resolved.
Uživatelé desktopu by měli používat nastavení v GUI a uživatelé serveru Netplan.

V speciálních případech to však můžete zvážit, například:

  • Chcete mít systémové záložní DNS nezávislé na DHCP
  • Chcete konfigurovat chování DNS pro více rozhraní
  • Řešíte složité problémy s VPN split‑DNS

V následující sekci ukážeme, jak nastavit záložní DNS pomocí systemd-resolved bezpečným způsobem.

9. Volitelné: Nastavení záložního DNS pomocí systemd-resolved (pokročilé)

Tato sekce je volitelná a určená pro uživatele, kteří chtějí mít hlubší kontrolu nad chováním DNS na Ubuntu.

V mnoha případech byste měli DNS konfigurovat přes:

  • Ubuntu Desktop: GUI (Nastavení sítě)
  • Ubuntu Server: Netplan YAML

Existují však situace, kdy můžete chtít definovat Záložní DNS, aby Ubuntu mohlo i nadále rozlišovat názvy, i když primární DNS selže.

9.1 Co je „Záložní DNS“?

Záložní DNS je náhradní DNS server, který Ubuntu použije, pokud aktuální DNS konfigurace selže.

Například, pokud váš síťový DNS server (router nebo firemní DNS) se stane nestabilním, fallback DNS může zabránit úplnému selhání rozlišení názvů.

9.2 Zkontrolujte aktuální nastavení systemd-resolved

Nejprve zkontrolujte, zda je systemd-resolved aktivní:

systemctl status systemd-resolved

Pokud běží, můžete pokračovat.

9.3 Upravte /etc/systemd/resolved.conf

Hlavní konfigurační soubor je:

/etc/systemd/resolved.conf

Otevřete ho pomocí nano:

sudo nano /etc/systemd/resolved.conf

Uvnitř můžete vidět zakomentované řádky jako tento:

#DNS=
#FallbackDNS=

Pro nastavení fallback DNS přidejte nebo upravte řádky jako:

[Resolve]
FallbackDNS=1.1.1.1 1.0.0.1
DNS=

Poznámky:

  • FallbackDNS může obsahovat více serverů oddělených mezerami.
  • Můžete nechat DNS= prázdné, pokud chcete pouze chování fallback.
  • Pokud nastavíte DNS= , může to v některých konfiguracích přepsat DNS na úrovni rozhraní, takže buďte opatrní.

9.4 Restartujte systemd-resolved

Po úpravě souboru restartujte službu:

sudo systemctl restart systemd-resolved

9.5 Ověřte, zda je fallback DNS rozpoznán

Zkontrolujte aktuální stav resolveru:

resolvectl status

Pokud je správně nakonfigurován, měli byste v výstupu vidět uvedený fallback DNS.

10. Často kladené otázky (FAQ)

10.1 Je bezpečné používat Google DNS nebo Cloudflare DNS na Ubuntu?

Ano, obecně je to bezpečné a mnoho uživatelů je používá pro rychlost a stabilitu.

DNS je však součástí vaší síťové soukromí a chování směrování, takže „nejlepší“ volba závisí na vašich preferencích a prostředí.

10.2 Proč se moje nastavení DNS vrací po restartu?

To se obvykle stává, když bylo DNS změněno dočasně (například přímou úpravou /etc/resolv.conf) místo použití správné trvalé metody.

Pro trvalou konfiguraci DNS:

  • Ubuntu Desktop: nakonfigurujte DNS v nastavení GUI
  • Ubuntu Server: nakonfigurujte DNS v Netplan YAML

10.3 Proč /etc/resolv.conf ukazuje 127.0.0.53?

To je na moderním Ubuntu normální a znamená, že Ubuntu používá lokální stub resolver přes systemd-resolved.

Pro zobrazení skutečných upstream DNS serverů použijte:

resolvectl status

10.4 Můj DNS funguje v prohlížeči, ale apt update selže. Proč?

To se může stát kvůli nastavením proxy, pravidlům firewallu nebo dočasným problémům s rozlišením DNS ovlivňujícím specifické domény.

Zkuste otestovat rozlišení DNS pro Ubuntu repozitáře:

nslookup archive.ubuntu.com

Pokud selže rozlišení názvů pro domény repozitářů, úprava DNS serverů může pomoci.

10.5 Mám vypnout IPv6, pokud se DNS zdá nestabilní?

Ne nutně. IPv6 je široce používáno a často funguje v pořádku.

Pokud však má vaše síť částečnou podporu IPv6, může to způsobit zpoždění.
Bezpečnější přístup je správně nastavit IPv4 DNS a nejprve ověřit výkon.

11. Shrnutí

Nastavení DNS na Ubuntu může působit matoucím, protože se může zapojit více systémů, jako Netplan, NetworkManager a systemd-resolved.

Jakmile však pochopíte správný workflow, řešení problémů se stane mnohem jednodušší.

11.1 Rychlý kontrolní seznam

  • Zkontrolujte DNS pomocí resolvectl status
  • Uživatelé Desktopu: změňte DNS přes nastavení síťového GUI
  • Uživatelé Serveru: nastavte DNS přes Netplan YAML a aplikujte změny
  • Nespoléhejte se na přímou úpravu /etc/resolv.conf
  • Vyčistěte cache a restartujte služby, pokud se změny neuplatní

Pokud budete postupovat podle těchto kroků, budete schopni rychle vyřešit většinu problémů typu „Ubuntu nemůže otevřít webové stránky“ nebo „DNS nefunguje“.

Problémy s DNS mohou být frustrující, ale výhodou je, že je obvykle lze opravit konzistentním procesem řešení problémů.