czwartek,
Plik hosts
Plik hosts
to specjalny plik systemowy używany przez system operacyjny do mapowania nazw hostów (czyli adresów internetowych) na adresy IP. Znajduje się on w różnych miejscach w zależności od systemu operacyjnego W systemach opartych na Uniksie, takich jak Linux czy macOS, lokalizacja tego pliku to zazwyczaj:
/etc/hosts
W systemach Windows wygląda to inaczej:
C:\Windows\System32\drivers\etc\hosts
Edytowanie pliku hosts
pozwala na przekierowanie ruchu sieciowego dla określonej nazwy domeny na inny adres IP niż ten, który jest przypisany przez DNS (Domain Name System). Jest to przydatne w wielu sytuacjach, na przykład w testowaniu stron internetowych lokalnie lub blokowaniu dostępu do określonych witryn.
Pamiętaj, że modyfikacja pliku hosts
wymaga uprawnień administratora. Zmiany wprowadzone w pliku `hosts” mają wpływ tylko na komputer, na którym został zmodyfikowany, i nie wpływają na inne urządzenia w sieci.
Zastosowania pliku hosts
- Testowanie – deweloperzy często używają pliku hosts do testowania stron internetowych lokalnie przed ich wdrożeniem na serwerach produkcyjnych.
- Blokowanie treści – plik hosts jest czasami używany do blokowania dostępu do określonych stron internetowych, na przykład do celów kontroli rodzicielskiej lub zapobiegania malware.
- Niestandardowe przekierowania – użytkownicy mogą także używać pliku hosts do przekierowywania nazw domen na inne adresy IP z różnych powodów, na przykład w przypadku przenoszenia domen.
Budowa pliku hosts
Budowa pliku hosts
jest prosta, co umożliwia prostą edycję i jest szczególnie przydatne w środowiskach testowych, deweloperskich, czy przy zarządzaniu siecią lokalną.
Format ogólny
- Adres IP – na początku każdej linii znajduje się adres IP, na który ma być przekierowana nazwa hosta.
- Nazwa hosta – po adresie IP następuje nazwa hosta (domeny), która ma być przekierowana na ten adres IP.
- Komentarze – linie mogą być komentowane za pomocą znaku
#
. Wszystko za tym znakiem w danej linii jest traktowane jako komentarz.
Przykład struktury
# Komentarz - opisuje, co robi dana sekcja
127.0.0.1 localhost
192.168.1.10 mojserwer.lokalny
# Blokada strony
127.0.0.1 blokowana-strona.pl
W tym przykładzie:
127.0.0.1 localhost
- przekierowuje nazwęlocalhost
na adres IP127.0.0.1
, co jest standardowym adresem loopback dla komputera.192.168.1.10 mojserwer.lokalny
- przekierowuje nazwęmojserwer.lokalny
na adres IP192.168.1.10
.127.0.0.1 blokowana-strona.pl
- blokuje dostęp doblokowana-strona.pl
przez przekierowanie jej na adres loopback.
Wiele nazw w jednym wierszu
Możesz mapować kilka nazw hostów do jednego adresu IP, umieszczając je w jednym wierszu, rozdzielając je spacjami lub tabulacjami. Na przykład:
192.168.1.5 serwer.lokalny serwer2.lokalny backup.lokalny
W tym przypadku serwer.lokalny
, serwer2.lokalny
, i backup.lokalny
wszystkie będą wskazywały na adres IP 192.168.1.5
.
Wpisy dla IPv6
Plik hosts
obsługuje również adresy IPv6. Jeśli chcesz dodać wpis dla adresu IPv6, wygląda to podobnie do wpisu IPv4, ale z użyciem adresu IPv6. Na przykład:
::1 localhost ipv6-localhost ipv6-loopback
W tym przypadku ::1
to adres loopback IPv6, równoważny 127.0.0.1
w IPv4. localhost
, ipv6-localhost
, i ipv6-loopback
będą wskazywać na ten adres IPv6.
Uwagi
- Plik
hosts
jest czytany od góry do dołu. Jeśli istnieją wielokrotne wpisy dla tej samej nazwy hosta, stosowany jest pierwszy napotkany wpis. - Formatowanie jest ważne – między adresem IP a nazwą hosta musi być co najmniej jedna spacja lub tabulacja.
- W przypadku systemów Unixowych i Linux, zmiany w pliku
hosts
są zazwyczaj stosowane natychmiastowo. W Windows może być wymagane wyczyszczenie pamięci podręcznej DNS lub restart komputera. - Modyfikacja pliku
hosts
wymaga uprawnień administratora lub superużytkownika.
Przykłady
Uwagi
- Przed edycją pliku
hosts
zaleca się utworzenie jego kopii zapasowej. - Po każdej zmianie w pliku
hosts
może być konieczne wyczyszczenie pamięci podręcznej DNS lub ponowne uruchomienie komputera, aby zmiany zostały zastosowane. - Należy pamiętać, że modyfikacje pliku `hosts” wpływają tylko na komputer, na którym zostały wykonane.
Lokalne testowanie strony internetowej
Załóżmy, że pracujesz nad stroną internetową dla mojadomena.pl
, ale chcesz przetestować ją lokalnie na swoim komputerze przed uruchomieniem na serwerze. Możesz dodać następującą linię do pliku hosts
:
127.0.0.1 mojadomena.pl
To przekieruje wszystkie zapytania do mojadomena.pl
na Twój lokalny komputer (lokalny adres IP to 127.0.0.1
). Gdy wpiszesz mojadomena.pl
w przeglądarce, zostaniesz skierowany do lokalnej wersji strony, a nie do tej znajdującej się na rzeczywistym serwerze.
Blokowanie strony internetowej
Jeśli chcesz zablokować dostęp do określonej strony internetowej, na przykład przykladowa-strona.pl
, możesz to zrobić, dodając jej nazwę:
127.0.0.1 localhost przykladowa-strona.pl
Po tej podyfikacji i zapisaniu pliku hosts
każda próba dostępu do przykladowa-strona.pl
z Twojego komputera zostanie przekierowana na lokalny adres, co skutecznie zablokuje dostęp do tej strony.
Przekierowanie na inny serwer
Załóżmy, że chcesz przekierować ruch z stara-domena.pl
na nowa-domena.pl
. Możesz to zrobić, dodając linię z adresem IP serwera, na którym znajduje się nowa-domena.pl
:
123.45.67.89 stara-domena.pl
Gdzie 123.45.67.89
to przykładowy adres IP serwera, na którym znajduje się nowa-domena.pl
. Po tej zmianie, odwiedzając stara-domena.pl
, zostaniesz przekierowany na nowa-domena.pl
.
Historia pliku hosts
Plik hosts
ma długą i interesującą historię, która jest ściśle związana z rozwojem Internetu. Został wprowadzony w ramach ARPANET, prekursora dzisiejszego Internetu, na początku lat siedemdziesiątych ubiegłego wieku. W tym okresie ARPANET był dość ograniczony pod względem liczby połączonych komputerów, a plik hosts
służył do mapowania nazw tych komputerów na ich numeryczne adresy IP. W tamtym czasie plik hosts
był aktualizowany ręcznie. Każdy komputer w sieci miał swój własny plik hosts
, który zawierał informacje o wszystkich innych komputerach w sieci.
Na początku lat osiemdziesiątych z powodu rosnącej liczby komputerów w sieci, system zarządzania plikiem hosts
stał się nieefektywny. To doprowadziło do opracowania systemu nazw domen (DNS) w 1983 roku. DNS był przełomem, ponieważ pozwolił na automatyczne i bardziej skalowalne zarządzanie mapowaniem nazw na adresy IP.
Nawet po wprowadzeniu DNS plik hosts
pozostał ważnym elementem systemów operacyjnych i nadal jest używany do różnych celów, takich jak testowanie, rozwój oprogramowania, blokowanie stron internetowych lub przekierowywanie ruchu sieciowego.