Plik /etc/hosts w systemie Linux to podstawowy plik konfiguracyjny służący do lokalnego mapowania nazw domen (hostów) na adresy IP. Jego edycja pozwala użytkownikowi ręcznie przypisać wybrane nazwy domen do określonych adresów IP, z pominięciem publicznych serwerów DNS. Poniżej znajdziesz szczegółowy poradnik, wyjaśniający, czym jest plik /etc/hosts, do czego służy oraz jak go bezpiecznie edytować krok po kroku.
1. Co to jest plik /etc/hosts?
- Plik /etc/hosts to prostym plik tekstowy znajdujący się w każdej dystrybucji Linux (m.in. Ubuntu, Debian, Fedora).
- Zawiera wpisy w postaci:
adres_IP nazwa_hosta [opcjonalny_alias]
Przykład:
127.0.0.1 localhost 192.168.1.5 serwer-lokalny moje-testy.local
- Przy żądaniu połączenia z nazwą domeny system najpierw sprawdza /etc/hosts, a dopiero potem serwery DNS. Pozwala to na lokalne przekierowania, przydatne w testach, rozwoju i specyficznych konfiguracjach sieciowych.
2. Do czego najczęściej używa się /etc/hosts?
- Testowanie nowych stron lub aplikacji przed wdrożeniem na produkcję.
- Blokowanie wybranych domen (np. reklamowych) przez przypisanie ich do adresu 127.0.0.1.
- Ominięcie standardowej rozdzielczości DNS dla wybranych hostów, np. urządzeń w lokalnej sieci.
- Skracanie czasu rozdzielczości nazw serwisów, gdy DNS jest zawodny lub dostępność sieci jest ograniczona.
3. Jak wygląda struktura pliku /etc/hosts?
Każda linia ma prostą strukturę:
- Adres IP, po nim co najmniej jedna nazwa hosta (może dodać aliasy, oddzielone spacją).
- Linie z
#
to komentarze, nie są brane pod uwagę przez system.
Przykład:
# Domyślne wpisy 127.0.0.1 localhost ::1 localhost # Przykładowy wpis 192.168.1.50 moje-projekty.local test-projekt
4. Jak edytować plik /etc/hosts w Linux — instrukcja krok po kroku
UWAGA – Do edycji wymagana jest uprawnienia administratora (root).
Krok 1 – Otwórz terminal (na większości systemów znajdziesz go w menu „Aplikacje” lub pod skrótem Ctrl+Alt+T).
Krok 2 – Uruchom edytor tekstu z uprawnieniami administratora. Najprostsza komenda:
sudo nano /etc/hosts
Opcjonalnie możesz użyć innych edytorów, np. vim
, gedit
:
sudo vim /etc/hosts sudo gedit /etc/hosts
System zapyta o hasło administratora.
Krok 3 – W edytorze przejdź na koniec pliku, dodając nowy wpis według schematu:
adres_IP nazwa_domeny [alias]
np.:
127.0.0.1 moja-strona.local
Krok 4 – Zapisz zmiany:
- W
nano
użyj: Ctrl+O (zapis) i Ctrl+X (wyjdź). - W
vim
: wpisz:wq
i naciśnij Enter. - W
gedit
: kliknij „Zapisz”.
Krok 5 – Sprawdź działanie wpisu. Możesz użyć polecenia ping
:
ping moja-strona.local
Jeśli wszystko działa poprawnie, powinieneś otrzymać odpowiedź z przypisanym adresem IP.
5. WAŻNE ZASADY BEZPIECZNEJ EDYCJI
- Błędny wpis może spowodować problemy z dostępem do stron (np. przekierowanie na złe IP lub blokada dostępu).
- Nie usuwaj domyślnych wpisów (
localhost
) — są kluczowe dla działania lokalnych usług systemowych. - Każdy wpis musi być w osobnej linii, wartości oddzielaj spacją lub tabulatorem.
- Komentarze dodawaj na początku linii ze znakiem
#
(np.# to jest komentarz
).
6. Najczęstsze problemy i rozwiązania
- Brak uprawnień – Upewnij się, że używasz
sudo
. - Błąd formatowania – Rozdziel IP i nazwę wyłącznie spacją lub tabulatorem, bez przecinków.
- Konflikt z DNS – Jeśli wpis istnieje w /etc/hosts, wygrywa z DNS dla danej nazwy domeny.
7. FAQ — krótkie odpowiedzi na najważniejsze pytania
- Czy mogę zablokować stronę przez /etc/hosts?
Tak, przypisując domenę do 127.0.0.1, np.127.0.0.1 reklamy.com
. - Czy zmiany w pliku są natychmiastowe?
Z reguły tak — system czyta plik przy każdym zapytaniu o nazwę hosta. - Czy plik działa dla IPv6?
Tak, można używać zarówno adresów IPv4 jak i IPv6.
8. Podsumowanie
/etc/hosts to potężne narzędzie do lokalnej konfiguracji rozdzielczości nazw domen. Poprawna edycja wymaga uwagi, ale pozwala na szybkie i precyzyjne przekierowania, testy oraz kontrolę dostępu — bez ingerencji w globalne DNS.
Jeśli pojawią się problemy lub pytania, najważniejsze jest zachowanie ostrożności i tworzenie kopii zapasowej pliku przed rozpoczęciem edycji.