15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij
30.10.2024
1 +1

Plik Hosts w macOS: Kompletny przewodnik po lokalnej kontroli DNS

Niezależnie od tego, czy jesteś programistą testującym nową stronę przed uruchomieniem, rozwiązujesz problemy z migracją serwera, czy po prostu blokujesz rozpraszające strony internetowe, plik hosts w macOS jest jednym z najpotężniejszych — i najrzadziej używanych — narzędzi w Twoim arsenale. Ten kompleksowy przewodnik przeprowadzi Cię przez wszystko, co musisz wiedzieć: czym jest plik hosts, gdzie go znaleźć, jak bezpiecznie go edytować i jak wykorzystać go w rzeczywistych przepływach pracy, takich jak testowanie serwera staging i lokalne środowiska programistyczne.

Czym jest plik hosts?

Plik hosts to zwykły plik tekstowy systemu, który mapuje czytelne dla człowieka nazwy hostów (takie jak example.com) na określone adresy IP. Zanim Twój Mac wyśle zapytanie DNS do zewnętrznego resolwera, najpierw sprawdza lokalny plik hosts. Jeśli istnieje pasujący wpis, używa tego adresu IP — bez udziału serwera DNS.

To sprawia, że plik hosts jest rodzajem lokalnej warstwy nadpisywania DNS, dając Ci szczegółową kontrolę nad tym, jak Twoja maszyna rozwiązuje nazwy domen. Działa cicho w tle i gdy jest używany prawidłowo, jest niezwykle wydajnym narzędziem zarówno dla programistów, jak i administratorów systemów.

Główne przypadki użycia w skrócie

Przypadek użyciaCo robi
Blokowanie stron internetowychMapuje domenę na 0.0.0.0, aby uniemożliwić dostęp
Lokalne programowanieMapuje niestandardową domenę na 127.0.0.1 do testowania na localhost
Testowanie DNS / migracjaKieruje aktywną domenę na nowy adres IP serwera przed propagacją DNS
Środowiska stagingPodgląd strony na nowym hoście bez zmiany publicznego DNS
Wzmacnianie bezpieczeństwaBlokuje znane złośliwe domeny lub domeny serwujące reklamy

Gdzie znajduje się plik hosts w macOS?

W macOS plik hosts znajduje się w katalogu /etc/. Pełna ścieżka to:

/etc/hosts

Jest to chroniony plik systemowy, co oznacza, że do jego modyfikacji potrzebne są uprawnienia administratora (root). Nie możesz po prostu kliknąć go dwukrotnie i zacząć edytować — musisz użyć Terminala z podwyższonymi uprawnieniami za pomocą sudo.

> Uwaga: Katalog /etc/ w macOS jest w rzeczywistości dowiązaniem symbolicznym do /private/etc/, więc /etc/hosts i /private/etc/hosts wskazują na ten sam plik.

Jak edytować plik hosts w macOS: krok po kroku

Krok 1 — Otwórz Terminal

Uruchom aplikację Terminal. Możesz to zrobić na dwa sposoby:

  • Spotlight Search: Naciśnij Command + Space, wpisz Terminal i naciśnij Enter
  • Finder: Przejdź do Applications > Utilities > Terminal

Krok 2 — Otwórz plik hosts z podwyższonymi uprawnieniami

Użyj edytora tekstu nano z sudo, aby otworzyć plik hosts:

sudo nano /etc/hosts

Zostaniesz poproszony o podanie hasła administratora macOS. Wpisz je i naciśnij Enter. Pamiętaj, że pole hasła pozostanie puste podczas wpisywania — jest to normalne zachowanie sudo w Terminalu.

Krok 3 — Zrozum domyślne wpisy

Po otwarciu pliku w nano zobaczysz domyślne wpisy, z którymi macOS jest dostarczany:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost

Nie usuwaj ani nie modyfikuj tych domyślnych wpisów. Są one wymagane do prawidłowego działania systemu. Wszystkie niestandardowe wpisy powinny być dodawane poniżej tych linii.

Krok 4 — Dodaj niestandardowe wpisy

Składnia wpisu w pliku hosts jest prosta:

<IP address>    <hostname>    [optional alias]

Każdy wpis musi znajdować się w osobnej linii. Oto praktyczne przykłady:

Zablokuj stronę internetową:

0.0.0.0    facebook.com
0.0.0.0    www.facebook.com

Mapuj lokalną domenę programistyczną:

127.0.0.1    myproject.local
127.0.0.1    myproject.dev

Skieruj domenę na określony serwer do testowania migracji:

192.168.1.100    mywebsite.com
192.168.1.100    www.mywebsite.com

Możesz również dodawać komentarze inline używając znaku #, aby zachować porządek w pliku hosts:

# --- Local Development Projects ---
127.0.0.1    project-alpha.local
127.0.0.1    project-beta.local

# --- Migration Testing: New Server IP 203.0.113.50 ---
203.0.113.50    clientsite.com
203.0.113.50    www.clientsite.com

Krok 5 — Zapisz plik

Po wprowadzeniu zmian w nano:

  1. Naciśnij Control + O, aby zapisać plik
  2. Naciśnij Enter, aby potwierdzić nazwę pliku
  3. Naciśnij Control + X, aby wyjść z nano

Krok 6 — Wyczyść pamięć podręczną DNS

Sama edycja pliku hosts nie wystarczy — macOS buforuje wyszukiwania DNS, więc musisz wyczyścić pamięć podręczną DNS, aby zmusić system do natychmiastowego rozpoznania nowych wpisów.

Uruchom następujące polecenie w Terminalu:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

To polecenie robi dwie rzeczy:

  • dscacheutil -flushcache — czyści lokalną pamięć podręczną DNS
  • killall -HUP mDNSResponder — restartuje proces mDNSResponder, który obsługuje rozwiązywanie DNS w macOS

Po uruchomieniu tego polecenia otwórz przeglądarkę i przetestuj domenę. Zmiany powinny wejść w życie natychmiast.

> Uwaga dotycząca wersji macOS: Powyższe polecenie flush działa w macOS Monterey, Ventura, Sonoma i Sequoia. W starszych wersjach (przed Yosemite) polecenie może się nieznacznie różnić.

Szczegółowe przypadki użycia w praktyce

Przypadek użycia 1: Blokowanie stron internetowych

Plik hosts jest jednym z najprostszych i najskuteczniejszych sposobów blokowania rozpraszających lub szkodliwych stron internetowych na poziomie systemu — bez potrzeby instalowania oprogramowania firm trzecich.

Mapując domenę na 0.0.0.0 (adres nieroutowalny), uniemożliwiasz przeglądarce dotarcie do strony:

0.0.0.0    reddit.com
0.0.0.0    www.reddit.com
0.0.0.0    twitter.com
0.0.0.0    www.twitter.com

W przeciwieństwie do rozszerzeń przeglądarki, ta blokada działa w całym systemie — dotyczy każdej przeglądarki i aplikacji na Twoim Macu.

Przypadek użycia 2: Lokalne środowiska programistyczne

Jeśli budujesz strony internetowe lub aplikacje webowe lokalnie, plik hosts pozwala przypisać niestandardowe nazwy domen do lokalnego środowiska zamiast używać ogólnego http://localhost lub http://127.0.0.1.

127.0.0.1    myshop.local
127.0.0.1    clientproject.local
127.0.0.1    wordpress-staging.local

Jest to szczególnie przydatne podczas pracy z projektami WordPress, Joomla lub Laravel, które używają bezwzględnych adresów URL lub domen cookie powiązanych z określoną nazwą hosta. W połączeniu z lokalnym stosem serwera WWW (takim jak MAMP, Laravel Valet lub kontener Docker) uzyskujesz profesjonalny lokalny przepływ pracy programistycznej.

Jeśli uruchamiasz środowisko programistyczne na zdalnej instancji VPS Hosting zamiast lokalnie, ta sama zasada ma zastosowanie — możesz skierować domenę bezpośrednio na adres IP swojego VPS do testowania przed aktualizacją publicznych rekordów DNS.

Przypadek użycia 3: Testowanie migracji serwera bez propagacji DNS

Jest to prawdopodobnie najbardziej wartościowy przypadek użycia dla programistów i administratorów systemów. Gdy migrujesz stronę internetową na nowy serwer — niezależnie od tego, czy zmieniasz dostawcę hostingu, czy ulepszasz infrastrukturę — propagacja DNS może trwać od kilku minut do 48 godzin.

Plik hosts pozwala natychmiast wyświetlić podgląd strony na nowym serwerze, z własnej maszyny, bez wpływu na kogokolwiek innego.

Przykładowy scenariusz: Migrujesz mywebsite.com na nowy Dedicated Server z adresem IP 203.0.113.50. Dodaj ten wpis:

203.0.113.50    mywebsite.com
203.0.113.50    www.mywebsite.com

Teraz, gdy wpiszesz mywebsite.com w przeglądarce, Twój Mac ładuje stronę z nowego serwera — nawet jeśli publiczny DNS nadal wskazuje na stary. Pozwala to:

  • Sprawdzić, czy wszystkie strony ładują się poprawnie
  • Upewnić się, że certyfikaty SSL są prawidłowo zainstalowane
  • Przetestować formularze kontaktowe, procesy zakupowe i dynamiczne funkcje
  • Potwierdzić, że połączenia z bazą danych i pliki multimedialne są nienaruszone

Gdy upewnisz się, że wszystko działa, zaktualizuj publiczne rekordy DNS. Przejście będzie bezproblemowe dla Twoich odwiedzających.

Przypadek użycia 4: Omijanie DNS w celu rozwiązywania problemów

Czasami problemy z DNS mogą sprawić, że strona jest niedostępna, nawet gdy sam serwer działa prawidłowo. Plik hosts pozwala całkowicie ominąć DNS i połączyć się bezpośrednio ze znanym adresem IP, aby zdiagnozować problem.

Jest to szczególnie przydatne, gdy:

  • Rekordy DNS Twojej domeny są nieprawidłowo skonfigurowane
  • Testujesz nową instalację SSL Certificates przed propagacją DNS
  • Musisz sprawdzić, czy serwer odpowiada prawidłowo, podczas gdy problemy z DNS są rozwiązywane

Przypadek użycia 5: Testowanie konfiguracji hostingu poczty e-mail

Jeśli konfigurujesz lub migrujesz Email Hosting i musisz sprawdzić, czy serwer poczty jest dostępny pod określonym adresem IP przed aktualizacją rekordów DNS, możesz tymczasowo zmapować domenę poczty w pliku hosts, aby przetestować łączność i konfigurację.

Weryfikacja zmian w pliku hosts

Przed wyczyszczeniem pamięci podręcznej DNS dobrą praktyką jest sprawdzenie, czy wpis został poprawnie zapisany. Możesz wyświetlić bieżącą zawartość pliku hosts bez jego edytowania za pomocą:

cat /etc/hosts

Możesz również użyć polecenia ping, aby sprawdzić, czy nazwa hosta rozwiązuje się do oczekiwanego adresu IP:

ping mywebsite.com

Dane wyjściowe powinny pokazywać adres IP zmapowany w pliku hosts.

Przywracanie domyślnego pliku hosts

Jeśli plik hosts stanie się zaśmiecony lub coś pójdzie nie tak, możesz zresetować go do stanu domyślnego. Otwórz plik za pomocą sudo nano /etc/hosts, usuń wszystkie niestandardowe wpisy i upewnij się, że plik zawiera tylko oryginalne wartości domyślne:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost

Zapisz plik, wyjdź z nano i wyczyść pamięć podręczną DNS za pomocą polecenia z kroku 6. Twój system powróci do używania standardowego rozwiązywania DNS dla wszystkich domen.

Kwestie bezpieczeństwa

Chociaż plik hosts jest potężnym narzędziem, pamiętaj o tych najlepszych praktykach bezpieczeństwa:

  • Ogranicz dostęp: Tylko administratorzy powinni mieć dostęp do zapisu w /etc/hosts. Sprawdź uprawnienia za pomocą ls -la /etc/hosts — powinno wyświetlić -rw-r--r--.
  • Usuń wpisy testowe po użyciu: Nie pozostawiaj wpisów testowych migracji po zakończeniu pracy. Mogą powodować zamieszanie i nieoczekiwane zachowanie w przyszłości.
  • Bądź świadomy złośliwego oprogramowania: Niektóre złośliwe oprogramowanie modyfikuje plik hosts, aby przekierować legalne domeny na złośliwe serwery. Okresowo przeglądaj plik hosts, aby upewnić się, że nie istnieją nieautoryzowane wpisy.
  • Używaj kontroli wersji dla zespołów: Jeśli wielu programistów współdzieli środowisko programistyczne, rozważ dokumentowanie wpisów pliku hosts w udostępnionym pliku README lub pliku konfiguracyjnym pod kontrolą wersji.

Szybki przewodnik: niezbędne polecenia

ZadaniePolecenie
Otwórz plik hosts do edycjisudo nano /etc/hosts
Wyświetl plik hosts (tylko do odczytu)cat /etc/hosts
Wyczyść pamięć podręczną DNS (macOS Ventura/Sonoma)sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Sprawdź uprawnienia plikuls -la /etc/hosts
Sprawdź rozwiązywanie nazwy hostaping yourdomain.com
Zapisz w nanoControl + O, następnie Enter
Wyjdź z nanoControl + X

Często zadawane pytania

Czy muszę restartować Maca po edycji pliku hosts?

Nie. Wyczyszczenie pamięci podręcznej DNS za pomocą polecenia dscacheutil jest wystarczające. Restart nie jest wymagany.

Czy zmiany w pliku hosts wpłyną na innych użytkowników mojego Maca?

Tak. Plik hosts obejmuje cały system, więc zmiany dotyczą wszystkich kont użytkowników na tej samej maszynie.

Czy plik hosts działa z HTTPS?

Tak, ale z zastrzeżeniem. Plik hosts kontroluje tylko rozwiązywanie adresów IP — nie obsługuje certyfikatów SSL/TLS. Jeśli przekierujesz domenę na nowy serwer za pomocą pliku hosts, a certyfikat SSL na tym serwerze nie pasuje do domeny, przeglądarka wyświetli ostrzeżenie o certyfikacie.

Czy mogę używać symboli wieloznacznych w pliku hosts?

Nie. Plik hosts w macOS nie obsługuje wpisów z symbolami wieloznacznymi. Każda nazwa hosta musi być wyraźnie wymieniona w osobnej linii.

Czy edycja pliku hosts wpłynie na mój VPN?

To zależy od konfiguracji VPN. Niektóre VPN nadpisują lokalne ustawienia DNS, co może spowodować, że wpisy pliku hosts będą ignorowane podczas aktywnego połączenia VPN.

Podsumowanie: przejmij pełną kontrolę nad lokalnym DNS

Plik hosts w macOS jest pozornie prostym, a jednak niezwykle potężnym narzędziem. Dzięki jednemu plikowi tekstowemu i kilku poleceniom Terminala możesz blokować rozpraszające strony internetowe, budować profesjonalne lokalne środowiska programistyczne i testować migracje serwerów z pełnym zaufaniem — bez czekania na propagację DNS lub dotykania aktywnej infrastruktury.

Dla programistów pracujących z VPS Control Panels lub zarządzających stronami na Shared Web Hosting, opanowanie pliku hosts jest podstawową umiejętnością, która zaoszczędzi Ci wiele godzin rozwiązywania problemów. Następnym razem, gdy będziesz przygotowywać migrację strony lub uruchamiać nowy projekt programistyczny, sięgnij najpierw po /etc/hosts — to najszybszy i najbardziej niezawodny sposób kontrolowania tego, jak Twój Mac rozwiązuje dowolną domenę w internecie.

15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij