GNU/Linux >> Znalost Linux >  >> Linux

Pochopení souboru /etc/hosts v Linuxu

Co je /etc/hosts a proč se používá?

Aby bylo možné odesílat síťový provoz na hostitele, musí být známa číselná adresa internetového protokolu (IP) tohoto hostitele. Adresa IP se tradičně zapisuje jako xxx.xxx.xxx.xxx, kde každé xxx představuje hodnotu od 0 do 255 pro síťovou adresu IPv4. Počítače vyžadují tyto adresy, ale pro lidi je obtížné zapamatovat si číselné hodnoty. Služba DNS (Domain Name Service) poskytuje mechanismus pro přidružení jednoho nebo více alfanumerických jmen k číselné IP adrese. V systému Linux jsou tyto čitelné názvy převedeny na jejich číselné ekvivalenty IP pomocí knihovny Resolver Library obsažené v souborech libresolve.so poskytovaných jako součást balíčku glibc RPM. Programy, které potřebují vyhledat číselnou IP adresu pro název, volají tuto knihovnu.

Názvy hostitelů a jejich adresy IP lze nalézt na různých místech:místní soubory, vzdálené servery DNS nebo servery NIS+, abychom jmenovali alespoň některé. Pořadí, ve kterém jsou tyto zdroje prohledávány, závisí na hostitelích:záznam v /etc/nsswitch.conf soubor. Tento řádek obvykle vypadá takto:

# vi /etc/nsswitch.conf
hosts: files dns

To způsobí, že knihovna resolveru nejprve nahlédne do místního souboru /etc/hosts; pokud tam název hostitele nenaleznete, obraťte se na vzdálené jmenné servery DNS uvedené v souboru /etc/resolv.conf soubor.

Linux poskytuje vazbu Balíček RPM, který umožňuje administrativní doméně konfigurovat a udržovat svou vlastní službu DNS, ale často je velikost místní sítě pouze několik hostitelů, a proto je úsilí o údržbu služby DNS neopodstatněné.

Formát souboru /etc/hosts

Soubor /etc/hosts je obyčejný textový soubor. Jsou povoleny dva typy čar:

  1. Prázdné řádky
  2. Definice názvu hostitele

Řádky lze podle potřeby prolínat. Komentáře začínají symbolem hash (# ) a pokračujte na konec řádku.

Přiřazení názvů hostitelů a IP adres

Pro každého hostitele by měl být přítomen jeden řádek s následujícími informacemi:

IP_address canonical_hostname [aliases ...]

Pole položky jsou oddělena mezerami (mezery nebo tabulátory). První pole je číselná adresa IP, která se použije pro všechny názvy hostitelů v této položce. V závislosti na vašich požadavcích lze použít buď adresu IPv4 (10.1.2.3), adresu IPv6 (2001:0db8:0000:0000:0000:0000:1428:57ab), nebo zkratku IPv6 (::1).

Po IP adrese zbývající tokeny určují místně známé názvy hostitelů spojené s touto IP adresou. Podle konvence je první jméno za IP adresou kanonický nebo plně kvalifikovaný název domény. Příkladem kanonického názvu může být server.example.com; toto je oficiální název hostitele.

Jakékoli zbývající názvy definované pro adresu IP jsou aliasy nebo alternativní názvy pro oficiální název hostitele. Předpokládejme například, že jednou z povinností přidělených serveru server.example.com je být firemní server FTP. Vhodný alias pak může být myftp.example.com a tento název lze přidat do položky /etc/hosts za kanonický název. Mnohokrát je alias jednoduše název hostitele bez jakékoli přípony domény. Například:

192.168.10.12 server.example.com myftp.example.com myhost myftp

Výhodou uvedení kanonického názvu hostitele jako první definice na řádku je to, že konverze IP na název hostitele (podobně jako zpětné vyhledávání DNS) obvykle zobrazí pouze nalezené křestní jméno; konvence k tomu používá kanonický název. V našem příkladu příkaz:

$ ping myftp
PING myhost.example.com (192.168.10.12) 56(84) bytes of data.
64 bytes from myhost.example.com (192.168.10.12): icmp_seq=1 ttl=64 time=0.023 ms
64 bytes from myhost.example.com (192.168.10.12): icmp_seq=2 ttl=64 time=0.028 ms
64 bytes from myhost.example.com (192.168.10.12): icmp_seq=3 ttl=64 time=0.028 ms

Všimněte si, že jsme odeslali příkaz ping myftp, ale výsledky pocházejí z hostitele myhost:toto je spolehlivý náznak, že adresujete alias, nikoli skutečný hostitel.


Linux
  1. Úvod do souboru Linux /etc/fstab

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

  3. Ukázkový soubor /etc/services v Linuxu

  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. Pochopení konfiguračního souboru /etc/profile v Linuxu

  3. Jak v mém souboru /etc/hosts/ v systému Linux/OSX vytvořím subdoménu se zástupnými znaky?

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

  2. Pochopení souboru /etc/xinetd.conf v Linuxu

  3. Vysvětlení souboru /etc/login.defs