Plik /etc/hosts w systemach Linux – wszystko co musisz wiedzieć
Systemy Linux oferują wiele narzędzi do zarządzania siecią, ale niewiele z nich jest tak fundamentalnych i jednocześnie tak prostych jak plik /etc/hosts
. W tym artykule, w ramach serii Szybkie rady #11 Jak działa /etc/hosts, przyjrzymy się szczegółowo temu mechanizmowi, który od lat stanowi pierwszy punkt kontroli w procesie rozwiązywania nazw domenowych.
Czym jest plik hosts i jak działa?
Plik /etc/hosts
to prosty plik tekstowy, który służy jako lokalna baza danych mapowania nazw hostów na adresy IP. Jego działanie można porównać do małej, lokalnej książki telefonicznej – zanim system zapyta zewnętrzny serwer DNS o adres danej domeny, najpierw sprawdza, czy odpowiedni wpis nie znajduje się właśnie w tym pliku. Ta prosta koncepcja ma ogromne znaczenie praktyczne, ponieważ pozwala na nadpisywanie standardowych odpowiedzi DNS dla określonych domen.

Podstawowa struktura pliku
Przyjrzyjmy się standardowej zawartości pliku /etc/hosts
:
127.0.0.1 localhost localhost.localdomain
::1 localhost localhost.localdomain
# Środowisko developerskie
127.0.0.1 dev.mojprojekt.local
127.0.0.1 api.mojprojekt.local
# Serwery produkcyjne
192.168.1.100 db-master.internal # Główna baza danych
192.168.1.101 db-slave.internal # Replika bazy danych
192.168.1.102 cache.internal # Serwer Redis
Każda linia zawiera adres IP oraz jedną lub więcej nazw hostów. Wpisy localhost są kluczowe dla działania systemu i nie powinny być modyfikowane. Komentarze (rozpoczynające się od #) pomagają w dokumentowaniu wprowadzonych zmian.
Praktyczne zastosowania w środowisku deweloperskim
Wyobraźmy sobie, że pracujemy nad nową wersją strony internetowej. Chcemy przetestować ją lokalnie, ale zachowując tę samą domenę co na produkcji. Oto jak możemy to zrobić:
# Przekierowanie produkcyjnej domeny na lokalny serwer
127.0.0.1 www.nasza-firma.pl
127.0.0.1 api.nasza-firma.pl
# Środowiska testowe dla różnych funkcjonalności
127.0.0.1 feature1.nasza-firma.local
127.0.0.1 feature2.nasza-firma.local
Teraz, gdy wpiszemy w przeglądarce maszyny na której jest ren wpis www.nasza-firma.pl
, zostaniemy przekierowani do lokalnie uruchomionej wersji strony, mimo że domena w rzeczywistości wskazuje na zupełnie inny serwer.
Zaawansowane scenariusze – środowisko produkcyjne
W środowisku produkcyjnym plik /etc/hosts
może służyć do konfiguracji komunikacji między serwerami w klastrze. Rozważmy przykład architektury mikrousługowej:
# Klaster mikrousług
192.168.1.50 auth-service.internal # Serwis autoryzacji
192.168.1.51 payment-service.internal # Serwis płatności
192.168.1.52 inventory.internal # Serwis magazynowy
192.168.1.53 notification.internal # Serwis powiadomień
# Bazy danych
192.168.1.100 mongodb-primary.internal
192.168.1.101 mongodb-secondary.internal
192.168.1.102 mongodb-arbiter.internal
Ten układ pozwala na łatwą komunikację między usługami bez konieczności konfigurowania wewnętrznego serwera DNS.
Rozwiązywanie typowych problemów
Czasami możemy napotkać problemy z działaniem pliku /etc/hosts
. Najczęstszym jest brak efektu po wprowadzeniu zmian. W takim przypadku należy:
# Wyczyścić cache DNS systemowego
sudo systemd-resolve --flush-caches
# W przypadku starszych systemów
sudo /etc/init.d/networking restart
# Wyczyścić cache przeglądarki lub użyć trybu incognito
Podsumowanie: szybkie rady #11 Jak działa /etc/hosts
Plik /etc/hosts
, mimo swojej prostoty, pozostaje niezwykle użytecznym narzędziem w codziennej pracy administratora i programisty. Jego elastyczność pozwala na szybkie testowanie nowych konfiguracji, blokowanie niechcianych domen czy uproszczenie komunikacji w złożonych środowiskach serwerowych. Kluczem do efektywnego wykorzystania tego mechanizmu jest zrozumienie jego możliwości oraz stosowanie dobrych praktyk w zakresie dokumentacji i automatyzacji zmian.