Hosts file - mikor hasznos, ha jól ismerjük?

2022-07-18
Webfejlesztők számára rendkívül hasznos trükk a hosts fájl szükség esetén történő módosítása. Amatőrök, csak óvatosan!

Írásainkat olyan, az informatika iránt érdeklődőknek szánjuk, akik egyelőre még szinte semmit vagy csak nagyon keveset tudnak az IT, weboldal készítés, internet, hálózatok, programozás, stb. világáról. Az általunk használt kifejezések és magyarázatok a nem szakmabelieknek szólnak. Cserébe közérthetően szeretnénk bemutatni az informatika különböző területeit és fogalmait.

***


Sokan nem ismerik ezt a hasznos kis trükköt, pedig sok esetben valóban “életmentő” lehet a hosts file manipulálása.

Miért lehet szükség rá? Kezdjük az elején!

Fejlesztőként, de akár honlap tulajdonosként is találkozhatunk a következő helyzettel:

Bár van egy fejlesztés alatt álló, (szinte) kész weboldalunk,  de nem tudjuk azt megnézni, ellenőrizni, mert amikor begépeljük a kérdéses domain nevet a böngészőnkbe, hibaüzenetet látunk csak. Márpedig teljesen természetes dolog, hogy egy fejlesztés alatt álló weboldalt ellenőriznünk kell, és ahhoz látni kell annak működését.

Sok oka lehet annak, hogy bár technikailag az adott weboldal megtalálható a szerveren, mégis hibaüzenetet kapunk.

Lehetséges okok:

  • Technikailag már feltelepítettük / feltöltöttük az adott szerverre a készülő honlapot, de valójában a domain nevet nem vásároltuk még meg. Az is lehetséges hogy a honlap tulajdonosa még nem döntötte el, hogy milyen domain nevet szeretne használni. Ez azonban minket nem akadályozhat meg a munkában.
  • Az is lehetséges, hogy azért nem tudjuk megnézni fejlesztés alatt álló honlapunkat, mert ugyan létezik a domain név, de még egy másik szerverre mutatnak az ún. DNS rekordok. Mi pedig már egy másik szerveren építjük fel az új weboldalt. Ez akkor tipikus eset, amikor van egy régi weboldal, amely működik, de a tulajdonos új weboldalt szeretne, és az új weboldal számára másik tárhelyszolgáltatást választott.
  • Végül természetesen az is lehetséges, hogy az úgynevezett DNS szerverekkel, vagyis a domain nevek kiosztását végző szerverekkel van ideiglenes probléma.

Bármelyik ok miatt is fordul elő a helyzet, van egy remek módszer, amellyel a normál üzemmódban nem elérhető oldalt is meg tudjuk nézni.
Ez pedig nem más, mint a címben említett hosts file megfelelő beállítása.

Mielőtt rátérnénk azonban, szükséges egy kis magyarázat a domainekről, DNS szerverekről és IP címekről

Technikai háttér: Az interneten zajló kommunikáció valójában nem a “szöveges” címek - vagyis a mindenki által ismert domain nevek - között zajlik, hanem a domain nevek mögötti számok között.

Mit jelent ez? Ha pl. a Pallas 70 Kft. weboldalát akarod megnézni, beütöd a böngésződbe azt, hogy pallas70.hu. Ez a domain név. Viszont a kommunikáció a számítógépeden valójában a domain névhez rendelt számsorral (IP címmel) fog zajlani, ami az esetünkben 139.162.215.127. Az IP rövidítés jelentése egyébként "Internet Protocol".

A hétköznapokban persze senkit nem érdekel egy szerver vagy domain IP címe, de a fent említett helyzetekben bizony fontos, hogy tudjuk.

Mivel éppen az a problémánk, hogy domain nevünk NEM működik, ezért az ún. "ping" paranccsal sem tudhatjuk meg ilyenkor a kérdéses domain IP címét.

Ha viszont tudjuk az IP címünket (mert pl. tudjuk a kérdéses tárhely IP címét), de még nincsen domain név hozzárendelve ehhez az IP címhez, akkor bizony már nincs veszve minden!

Az IP címeket a domain nevekhez a domain név szolgáltatók rendelik hozzá (mint a régi telefonkönyvekben a neveket a telefonszámokhoz), ők üzemeltetik a DNS szervereket. Tehát, ha te begépelsz egy domain nevet, a rendszer "körülnéz" a DNS-ben (vagyis a domain nevek és IP címek kiosztását szabályozó rendszerben - Domain Name System). Ha a domaint bármilyen oknál fogva nem találja, akkor azt mondja, hogy “A webhely nem érhető el - A(z) valamilyen_domain.hu szerver IP-címe nem található.”


Itt jön a trükk

A DNS-nek létezik egy helyi, saját gépeden megtalálható változata is, ahol "kézzel" össze tudjuk párosítani a domain neveket az IP címekkel. Ez pedig a varázslatos “hosts” file (így kiterjesztés nélkül!).

Lelőhelye változó, Windows alatt a Windows/System32/drivers/etc könyvtárban, mac/linux alatt a sima /etc könyvtárban található. FIGYELEM! A hosts file csak admin joggal elérhető és általában írásvédett, így a szerkesztése nem annyira egyszerű! Aki itt elakad, az jobb, ha nem is nyúl hozzá.

A szerkesztésre legjobb, ha a notepad-ot (jegyzettömb) használjuk. Nincsen más dolgunk, mint ide felvenni a nekünk kellő domain nevet és társítani a megfelelő IP-vel (természetesen előtte a tárhelyen meg kell csinálni a domain hozzárendelést!). A fomátum: először a 4 tagú IP cím, aztán a domain név, közte szóköz. Van még itt jó pár bejegyzés, de azzal nem kell foglalkozni. A # (hashmark) karakter a sor elején azt jelzi, hogy a rendszer nem veszi figyelembe az adott sort. Gyakorlatilag a komment jelzése. Ha nem akarod kitörölni a már meglévő összerendeléseket, hátha később is kell, elég a sor elejére rakni egy hashmarkot.

A hosts file használatával bánjunk óvatosan, ugyanis a rendszerek először a hosts file-t nézik meg, ha ott találnak bejegyzést, nem keresnek tovább! Éppen ezért, ha már nincsen rá szükségünk, rakjunk elé # karaktert, így a későbbiekben nem tépjük a hajunkat, ha valami magyarázhatatlan hiba merülne fel.

A fent felsoroltakon kívül még néhány helyzet, amikor hasznos lehet a hosts file használata:

  • lejárt a domain neved, de a tárhelyed még élő, és menteni akarsz róla ezt-azt gyorsan
  • meg akarsz tréfálni egy kollégát és a kedvenc oldalát átirányítod. De ha rájön, fuss! 

Jó tudni:

  • a hosts fájlt egyes védelmi szoftverek (AV, FW) is képesek megfogni
  • figyelni kell az elgépelésekre, gyakori hiba főleg egy bonyolultabb domain név esetén.


Fontos: Ez a trükk kizárólag saját számítógépeden működik! Ez azt jelenti, hogy ha sikerül a fenti módszerrel megnézni a domain nevet / honlapot, akkor azt csak TE tudtad megnézni a saját számítógépeden!


Ha érdekelnek az IT témák, az alábbi képzéseket ajánljuk figyelmedbe:

Webszerkesztés alapjai
Webfejlesztő
Junior frontend fejlesztő
Junior Java backend fejlesztő
Junior szoftvertesztelő
Junior rendszerüzemeltető