Jak a kdy editovat hosts soubor na vašem PC

Soubor hosts je lokální textová mapa mezi názvy hostitelů a IP adresami. Pokud v něm existuje záznam pro dotazované jméno, systém Windows použije primárně zde uvedenou IP adresu místo odeslání DNS dotazu na nakonfigurovaný DNS server.

Tj. prakticky – pokud naťukáte do www prohlížeče adresu webu např. www.vasedomena.cz, systém se nejprve podívá do souboru hosts, zda v něm nenajde výskyt tohoto názvu, a pokud ano, pošle požadavek přímo na IP adresu serveru ze souboru hosts. Pokud v souboru výskyt tohoto názvu nenajde, předá standardní DNS dotaz patřičným serverům, které mu vrátí IP adresu webserveru, kde web běží.

K čemu se změny v souboru hosts používají

Typické použití je testování webu před změnou DNS, přesměrování interního názvu na konkrétní server, dočasné blokování domény nebo řešení problémů s rozlišováním jmen.

Velkou výhodou je to, že záznam je platný pouze na daném počítači, a tedy neovlivňuje DNS záznamy ani ostatní zařízení v LAN síti ani kdekoliv jinde na internetu.

Jedná se tedy o ideální způsob, jak lokálně vyzkoušet a zjistit, jak web z daného (alternativního) webserveru vypadá a funguje, aniž by bylo potřeba měnit cokoliv tak říkajíc „venku“ na internetu. Veřejně prováděné změny by totiž při chybném nastavení mohly mít fatální dopad např. na viditelnost a provoz vašeho webu, nebo dokonce i dalších služeb v doméně.

Jak přidat záznam do souboru ve Windows

Soubor hosts je v operačním systému Windows chráněný systémový soubor, takže k jeho uložení potřebujete textový editor spuštěný s oprávněním správce.

  1. Stiskněte Start, napište Poznámkový blok (popř. notepad).
  2. Z podružného okna vpravo od vyhledaného výsledku zvolte Spustit jako správce.
  3. Potvrďte výzvu, že si přejete program spustit (Řízení uživatelských účtů).
Spusťte Poznámkový blok s administrátorským oprávněním, aby byla umožněna editace chráněného souboru hosts

Tím jste dosáhli spuštění programu Poznámkový blok s administrátorskými právy. Je to proto, že soubor hosts je v systému chráněn vyššími oprávněními, a nemohl ho tak přepsat jakýkoliv proces ve Windows.

Dále pokračujte v poznámkovém bloku na otevření souboru:

Z Poznámkového bloku zvolte Soubor → Otevřít a přejděte do složky se souborem hosts
  1. Zvolte Soubor → Otevřít (Cltr+O).
  2. Přejděte do složky c:\Windows\System32\drivers\etc\
  3. Pokud zde soubor není vidět, přepněte filtr souborů z Textové dokumenty (.txt) na Všechny soubory (*.*) – tento filtr se obvykle nachází vpravo dole u potvrzovacích tlačítek okna.
  4. Vyberte soubor hosts ze seznamu souborů v dané složce, a zvolte Otevřít.
  5. Přejděte na konec souboru a na nový řádek dopište IP adresu serveru následovanou znakem Tab (popř. mezerami), a záznamem (doménou), kterou si přejete přidat. Na další řádek pak můžete zapsat variantu s www.
  6. Změny v souboru uložte pomocí Soubor → Uložit (Ctrl+S).
Přidejte potřebné řádky na konec souboru hosts, a uložte změny

Uložená změna se projeví okamžitě, což lze otestovat pomocí příkazu ping na daný název. Je-li na alternativním serveru pro tento web připraven prostor a vše okolo, doputuje požadavek na ping odezvu na nový/alternativní server, a ten na ni správně odpoví. Tím jste si ověřili, že se IP adresa po editaci souboru hosts skutečně změnila a vaše požadavky budou směrované na alternativní server.

Pokud následně zadáte název webu do www prohlížeče, ten jej předá už alternativnímu serveru, čímž zjistíte, jak web obsluhovaný tímto serverem vypadá, co na něm funguje nebo ne, a jaké se případně objevují v provozu chyby.

Příkazem ping na www.vadedomena.cz zjistíte IP adresu serveru, na který je DNS požavek směrován. IP adresa zjištěná před editací souboru by se měla lišit od IP adresy po editaci souboru hosts

Pokud by se stalo, že IP adresa ověřovaná pomocí příkazu ping po uložení souboru hosts vrací stejnou hodnotu, jako před jeho editací, pravděpodobně máte DNS záznam související s tímto názvem tzv. v cache DNS resolveru. Zřejmě jste jej navštívili už dříve a DNS systém počítače si ho pamatuje od posledně. To vyřešíte vyprázdněním DNS cache následovně:

  1. Spusťte Příkazový řádek (příkazem cmd) jako administrátor – analogicky spouštění Poznámkového bloku výše.
  2. Do okna Příkazového řádku napište příkaz ipconfig /flushdns a stiskněte Enter.
  3. Tím dojde k vymazání cache DNS resolveru a zahození zastaralých záznamů.
  4. Příkazem ping ověřte, že se změnila IP adresa serveru oproti původní, před editací souboru hosts.
  5. Zavřete a znovu spusťte www prohlížeč, příp. spusťte jeho anonymní okno.
  6. Do www prohlížeče napište název vašeho webu (www.vasedomena.cz).

Bezpečnost a údržba

Nezapomeňte, že soubor hosts je běžným cílem různého malware, protože umožňuje přesměrovat dotazy na bankovní domény, aktualizační servery nebo antivirové služby na útočníkem podvržené škodlivé IP adresy. Proto je vhodné si před úpravou vytvořit zálohu a pravidelně kontrolovat, zda v souboru nejsou neznámé záznamy. Microsoft doporučuje původní hosts před editací přejmenovat např. na hosts.old a na jeho místo umístit nový soubor stejného obsahu.

Na závěr testování nezapomeňte, že záznamy, které již nepotřebujete, je dobré ze souboru opět odebrat. Zbytečné statické mapy uvedené v hosts souboru mohou později způsobit těžko odhalitelné problémy.