Jak mogę sprawić, aby OSX Mavericks zauważył zmianę DNS w `/ etc / hosts`?

24

Typowym sposobem „blokowania” strony internetowej (np. W celu jej wyeliminowania jako rozproszenia) jest edycja /etc/hostsi wskazywanie domeny na adres pętli zwrotnej. Na przykład:

# Stop goofing off
127.0.0.1 youtube.com

W Mavericks uważam, że takie zmiany są najwyraźniej ignorowane przez system operacyjny; po edycji pliku (sudo) i zapisaniu strona, która powinna zostać zablokowana, nadal się ładuje.

Próbowałem zresetować pamięć podręczną DNS w następujący sposób:

dscacheutil -flushcache
sudo killall -HUP mDNSResponder

Ale strona wciąż się ładuje.

Jak mogę przekonać OSX Mavericks do zmiany /etc/hosts?

Nathan Long
źródło
1
Czy to możliwe, że pamięć podręczna DNS przeglądarki nie jest opróżniana? Z jakiego adresu IP ping youtube.comkorzysta?
Leonid Szewcow
Uwaga dodatkowa: jeśli używasz DNS do tymczasowego blokowania witryn, selfcontrolapp.com dla OSX działa dobrze. Zmienia plik hosts i wydaje się, że automatycznie opróżnia pamięć podręczną przeglądarki. Wspominają również o podobnych aplikacjach dla innych platform: github.com/SelfControlApp/selfcontrol/wiki/FAQ
Nathan Long,

Odpowiedzi:

19

Według The gospodarze (5), strony podręcznika The /etc/hostsplik jest używany przez mDNSResponder. Twoje próby poprawnego opróżnienia pamięci podręcznej całego komputera, ale musisz również opróżnić pamięć podręczną przeglądarki.

Po każdej edycji /etc/hostsresetowania mDNSResponderpamięci podręcznej za pomocą tej uwagi technicznej Apple OS X: Jak zresetować pamięć podręczną DNS :

sudo dscacheutil -flushcache

Po wykonaniu tej czynności zresetuj pamięć podręczną przeglądarki :

  • Safari: użyj pozycji menu Safari > Resetuj Safari .
  • Chrome: użyj pozycji menu Chrome > Wyczyść dane przeglądania .
Graham Miln
źródło
1
To naprawiło to. W „Wyczyść dane przeglądarki” w Chrome znajdują się pola wyboru dla typów danych. „Opróżnij pamięć podręczną” jest odpowiednie.
Nathan Long
5

Usuń pamięć podręczną przeglądarki i dodaj 127.0.0.1 www.youtube.comdo pliku hosta.

youtube.comrozwiązuje się na www.youtube.com. Twoja przeglądarka buforuje te informacje i przekierowuje na stronę www.

napcae
źródło
0

W systemie OS X 10.9 Mavericks występują problemy z próbą wyświetlenia wielu nazw hostów w tej samej linii / etc / hosts. Wypróbowałem wszystkie inne wskazówki związane z DNS w tym poście i powiązanym poście bezskutecznie, dopóki nie natknąłem się na powyższy link „problemy”.

Kiedyś miałem coś takiego:

127.0.0.1 localhost host1 host2 host3 ...

ale odkryłem, że rozwiązanie tych hostów potrwa wieczność lub w ogóle nie zadziała. Próba uzyskania dostępu do stron za pośrednictwem przeglądarek byłaby ogólnie OK (choć czasem bardzo powolna do rozwiązania), ale próba pingowania z linii poleceń nie działałaby.

Zmiana na następujący format sprawiła, że ​​wszystko działało dla mnie dobrze, a teraz działa świetnie z pingiem, w przeglądarce i wszędzie indziej:

127.0.0.1 localhost
127.0.0.1 host1
127.0.0.1 host2
127.0.0.1 host3

Więcej szczegółów .

Scott Dudley
źródło
0

Oprócz odpowiedzi Grahama spróbuj chrome: // net-internals / # dns (dla Google Chrome), aby zobaczyć, co jest buforowane. Następnie kliknij Wyczyść pamięć podręczną hosta, aby wszystko wyczyścić.

David Hempy
źródło