825-330-2016-04-08 07_59_52-Start

TIP#464: K čemu je (nejen) ve Windows soubor hosts a kde ho najdu a jak ho mohu editovat?

Soubor hosts slouží (nejenom) ve Windows pro vytvoření „překladu“ jména na IP adresu, tedy to co za normálních okolností řeší doménové servery a DNS. Pomocí hosts souboru si ale můžete vytvořit vlastní definice. Ať už třeba pro použití v domácí/lokální síti, nebo pro blokování některých doménových jmen (adres) – používá například i pro blokování reklamy (viz Jak se zbavit reklam na Internetu? Použít AdBlock Plus nebo spíš µBlock Origin).

Obsah hosts je čistý text, na každé řádce je možné určit převod v podobě IP adresy následované jmény, které se pro danou IP adresu mají stát ekvivalentní. Mimo to ještě může hosts obsahovat komentáře, v podobě řádku uvozeného znakem # na samém počátku. Nejzákladnější obsah hosts přitom většinou bývá alespoň definice localhost či loopback adres (reálně to není potřeba, je to řešeno přímo v rámci DNS).

127.0.0.1  localhost loopback
::1        localhost

hosts najdete na různých místech v různých operačních systémech – v Linuxu v /etc/hosts. Ve Windows od XP výše v \%SystemRoot%\System32\drivers\etc\hosts (v ještě starších to ale bylo %WinDir%\hosts připadně %WinDir%\HOSTS. V Mac OS X je to také trochu komplikovanější, do verze devět to bylo v složce Preferences či System a v novějších desítkovém OS X by to mělo být klasicky /etc/hosts (ve skutečnosti symlink na /private/etc/hosts)

2016-04-08 07_59_52-Start.png
Takto vypadá „prázdný“ hosts ve Windows 10. Otevřené ve Far Manager, mimochodem.

Na hosts je podstatné i to, že bývá zneužíván viry, které pomocí změny dosahují přesměrování na napadené weby, phishingové stránky či blokování přístupu na weby výrobců antivirů (ale třeba i Windows Update). Windows 10 se tomu nově brání tím, že hosts je chráněn systémem – změna je možná pouze pokud máte práva správce a ještě vyvolává varovný dialog. Obecně se doporučuje (ve Windows) označit hosts jako pouze pro čtení (readonly).

2016-04-08 08_00_24-Start.png
Při uložení (z Far Manageru) se nejprve objeví nutnost získat práva a poté ještě bezpečnostní dialog samotných Windows.

TIP: Ve Windows ještě existuje lmhosts s velmi podobnou funkčností, jen jde o převod mezi NetBIOS jmény (jména počítačů v rámci Windows sítě) na IP adresy. Najdete ho zpravidla tam, kde je k nalezení i hosts

Jak ve Windows měnit (opravovat) obsah hosts? Snadno, třeba tak, že dorazíte do výše uvedené složky a soubor si otevřete pomocí aplikace Notepad (nebo čehokoliv jiného, co umožňuje pracovat s čistě textovým souborem). Je důležité ale vědět, že onen Notepad byste měli spustit jako správce.  Stačí spustit příkazovou řádku (cmd) jako správce, poté se vydat do výše uvedené složka a pomocí „notepad hosts“ otevřít notepad s hosts souborem.

Pokud ani to nepomáhá (a může se vám to stát ve Windows 10) tak to lze obejít tak, že si hosts zkopírujete  (nebo ten opravený uložíte) do nějaké vlastní složky, která není pod ochranou systému, provedete potřebné úpravy a pak nový hosts zkopírujete zpět. Dejte si případně ještě pozor, některé antivirové software může bránit změnám hosts souboru.

TIP: Pokud hosts opravujete často, tak by se vám mohl hodit HostsMan, program (aplikace) pro práci s hosts souborem. Není jediná, další alternativa je například SysMAte Hosts File Walker.

Dejte si pozor, abyste místo souboru hosts nevytvořili/neuložili soubor hosts.txt. Nebude to fungovat, protože to je poněkud jiný soubor.

Pokud změníte hosts a změna se neprojevuje, tak je dost dobře možné, že ještě budete muset vyprázdnit vyrovnávací paměť pro DNS dotazy. To se děje z příkazové řádky pomocí ipconfig /flushdns (o IPCONFIG si počtěte v K čemu slouží ve Windows příkaz ipconfig?)

K čemu všemu můžete hosts použit

Časté použití je pro zablokování přístupu k určitému webu – pokud třeba chcete zabránit přístup na facebook.com, tak stačí do hosts přidá řádku „127.0.0.1 facebook.com www.facebook.com m.facebook.com“

Další často použití je, že si můžete dát jméno domácímu routeru či jinému zařízení abyste nemuseli psát IP adresu pokaždé, když ho chcete používat. Uděláte to třeba tak, že do hosts přidáte řádku „192.168.0.30 DDNAS“

hosts budete potřebovat změnit třeba i v okamžiku, kdy testujete nějaký ještě nespuštěný web, nebo i vyvíjíte weby a máte je na lokálním stroji – v hosts si pak nadefinujete odpovídající jméno k dané IP adrese.

TIP: Ve K čemu se hodí veřejné DNS jako Google DNS či OpenDNS se dozvíte, jak si pořídit jiné DNS než to od vašeho ISP. A pokud nevíte co je to IP adresa, tak poradí Co je to IP adresa?A co je IPv4 a IPv6

Další podobné příkazy a věci