GNU/Linux >> Znalost Linux >  >> Linux

Formát /etc/hosts na Linuxu (liší se od Windows?)

Formát /etc/hosts na Linuxu a Windows je stejný:

IP address        hostname [hostalias]...

kde závorky jsou obvyklým způsobem, jak označit, že je něco nepovinné (ve skutečnosti je nepište) a tečky (... ) znamená, že jich může být více.

Z vašeho hostitele byste neměli dělat součást domény. Zkuste to a uvidíte. Ale bylo by dobré použít .localdomain pokud nemáte skutečný název domény. Může to trochu zrychlit rozlišení názvu hostitele díky ndots možnost v /etc/resolv.conf .

Všimněte si, že v tomto smyslu doména znamená doménu DNS (jako google.com nebo stackexchange.com ), není to doména Windows ani nic podobného.

Řádek začínající ::1 je pro IPv6. ::1 je jako 127.0.0.1 podle nového schématu adresování. Spusťte ifconfig lo a měli byste vidět, že má dvě adresy. Všimněte si položky začínající inet6 .

$ ifconfig lo
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
...

Více podrobností naleznete na manuálové stránce hosts(5).


Vždy chcete, aby adresa 127.0.0.1 byla nejprve převedena na localhost. Pokud existuje doména, můžete ji také použít, ale ujistěte se, že localhost je uveden jako druhý. Pokud chcete přidat aliasy pro váš počítač, který bude vyhledávat adresu zpětné smyčky, můžete je nadále přidávat jako hodnoty oddělené mezerou na tomto řádku. Zadání domény zde je volitelné, ale neodstraňujte „localhost“ z možností.


Nemohu mluvit o tom, jak se Windows mohou lišit od Linuxu, ale formát definice místního počítače ovlivňuje výsledky, které získáte z příkazu 'hostname'.

Formát, který podle mě funguje nejkonzistentněji, je tento:

127.0.0.1 etest.mydomain.com etest localhost

Důležitá věc, kterou jsem našel, je mít FQDN jako první a aliasy v libovolném pořadí až za ním.

Pokud experimentujete s přeuspořádáním názvů za IP adresou a poté pomocí příkazů 'hostname -s' (krátký název) a 'hostname -f' (plně kvalifikovaný název domény nebo FQDN), uvidíte, co tím myslím. Mělo by to vypadat nějak takto:

$ hostname -s
etest

$ hostname -f
etest.mydomain.com

'hostname' by samo o sobě mělo vrátit jakékoli jméno, které jste zadali pro hostitele v /etc/conf.d/hostname nebo /etc/hostname (umístění souboru se liší podle distribuce, ale někde by se mělo najít pod /etc).

Pokud změníte pořadí jmen, můžete zjistit, že "hostname -f" vám dává odpovědi jako "localhost" nebo "hostname:system error". Jediné uspořádání, které jsem zjistil, že funguje správně, je uvedení FQDN na první místo.

Řádek lokální adresy IPv6 (::1) nastavuji vždy stejně, tj.:

::1 etest.mydomain.com etest localhost

Vím, že některé distribuce nastavují název IPv6 na něco jako ip6-localhost. IPv6 zatím opravdu nepoužívám, takže nemohu komentovat, jaké by bylo nejlepší nastavení pro tuto linku. Mohu jen říci, že v síti IPv4 to funguje tak, že obě linky mají stejné názvy.


Linux
  1. Vytvořit uživatelsky specifický soubor Hosts jako doplněk /etc/hosts?

  2. Na jakých systémech se //foo/bar liší od /foo/bar?

  3. Zahrnout název domény nebo ne do /etc/hosts?

  1. Linux – extrahovat data z /etc/shadow?

  2. TCP Wrapper (hosts.allow &hosts.deny) Možnosti příkazů v Linuxu

  3. CentOS / RHEL :Jak obnovit ze smazaného souboru /etc/passwd

  1. Jaké je spojení mezi adresáři /etc/init.d a /etc/rcX.d v Linuxu?

  2. Rozdíl mezi /etc/hosts a /etc/resolv.conf

  3. Limit velikosti /etc/hosts (Linux)