Plik hostów OSX Sierra jest ignorowany

19

Z jakiegoś powodu dwa dni temu mój plik hosts zaczął być ignorowany.
Używam Maca z Sierra OSx. To jest bieżąca zawartość pliku / etc / hosts

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

127.0.0.1 localkur.com

Pinging localkur.com powraca

ping: cannot resolve localkur.com: Unknown host

Uruchomiłem ponownie system, wyczyściłem pamięć podręczną za pomocą tych poleceń

sudo killall -HUP mDNSResponder;
sudo discoveryutil mdnsflushcache;
sudo discoveryutil udnsflushcaches;

Ponownie otwórz plik w różnych programach do edycji tekstu, vm, sublime itp.
Podwójnie sprawdzone, czy spacja lub tabulator (lub podwójna spacja lub tabulator) - przetestowane ze wszystkimi możliwościami.
Monitoruj również plik za pomocą tego polecenia

 sudo fs_usage | grep "/etc/hosts"

I uzyskałem ten wynik podczas odświeżania przeglądarki lub zapisywania jej z wysublimowanym wyglądem

12:23:35  open              private/etc/hosts 0.000019   Google Chrom
12:23:36  open              private/etc/hosts 0.000019   Google Chrom
12:23:41  stat64            /private/etc/hosts 0.000022   Sublime Text
12:23:43  stat64            /private/etc/hosts 0.000019   Sublime Text
12:23:45  stat64            /private/etc/hosts 0.000019   Sublime Text
12:23:45  open              /private/etc/hosts 0.000019   Sublime Text

Czego mi brakuje ?
Dlaczego ten plik jest ignorowany?
Jak włączyć to ponownie?

T1000
źródło
Jakie są zaznaczone linie System Preferences > Network > Advanced ... > Proxies? Nic specjalnego?
FarazX
plik może być uszkodzony / uszkodzony, musi to być plik ascii - dlaczego go nie odtworzysz?
13dimitar
@FazazX istnieje „Pomiń ustawienia proxy dla tych hostów i domen:”, a wartość to „* .local, 169.254 / 16”
T1000
@ 13nilux jak poprawnie go odtworzyć?
T1000
with nano- move wykonaj stary plik do / etc / oldhosts, utwórz nowy plik za pomocą nano, zapełnij go wartościami starego pliku i zapisz jako / etc / hosts
13dimitar

Odpowiedzi:

12

Plik może być uszkodzony / uszkodzony, musi to być plik ASCII. Powinieneś go odtworzyć:

  • przenieś stary plik za pomocą mv -f /etc/hosts /etc/oldhosts
  • utwórz nowy plik za pomocą nano
  • wypełnij go wartościami starego pliku
  • zapisz to jako /etc/hosts

Że należy to zrobić.

13dimitar
źródło
1
Dzięki, to był problem w moim przypadku! Plik wyglądał zupełnie normalnie, ale najwyraźniej miał zmienione kodowanie lub coś innego. Było to widoczne przez „cat / etc / hosts”, ponieważ cat nie wyświetlał całej zawartości pliku, tylko ostatni wiersz ....
T1000
13
Mądrze byłoby file -I /etc/hostsnajpierw sprawdzić wyjście. Jeśli wyjdzie charset=us-ascii, ta odpowiedź nie zadziała.
MCCCS,
10

Spójrz na Preferencje systemowe -> Sieć

Jeśli w aktywnej „Lokalizacji” znajduje się jeden lub więcej serwerów DNS, system utworzy plik „/etc/resolv.conf”, który wyświetli te serwery nazw jako miejsce do rozstrzygnięcia, całkowicie omijając / etc / hosts

resolv.conf jest tworzony dynamicznie przez ustawienia wstępne „Sieć” i nadpisywany na podstawie pola „Serwer DNS” aktualnie aktywnej „Lokalizacji” lub usuwany, jeśli to pole jest puste

BenL
źródło
To rozwiązało problem. Dziękujemy za opublikowanie tego rozwiązania.
PhilR
1
Mój system używa DHCP do odbierania resolvera DNS i ma plik /etc/resolv.conf. Jak mogę zastąpić normalne zapytanie DNS, aby zablokować popundery? Moim zamiarem było dodanie linii do / etc / hosts.
jetset
Jak zamierzasz rozróżniać prawidłowe zapytania DNS od popunderów? Wygląda na to, że może to być problem z poziomem przeglądarki. Czy może lepiej służyć przeglądarkom takim jak „Privacy Badger” lub „uBlock Origin”?
BenL
1
Więc jakie jest rozwiązanie? Usuwanie systemu DNS wymienionego na karcie DNS.
multigoodverse
W moim przypadku nie mogłem usunąć DNS (używam pi-hole), ale chciałem, aby niektóre domeny zostały zakłute przed wysłaniem ich do DNS pi-hole w celu rozwiązania. Z jakiegoś powodu posiadanie 127.0.0.1 example.comw / etc / hosts nie działało i wysyłało zapytania dns do pi-hole, które były następnie rozwiązywane w przeglądarce, ale zmieniając 127.0.0.1 na 0.0.0.0 tak, że 0.0.0.0 example.comzamiast tego mój wpis czytał w / etc / hosts .
Conor,
2

To z pewnością stary wątek, ale dzisiaj miałem ten sam problem i znalazłem rozwiązanie. Zostawiając to tutaj, na wypadek, gdyby ktoś tego potrzebował.

sudo dscacheutil -flushcache

Opróżnianie pamięci podręcznej DNS rozwiązało problem w moim przypadku.

rahulsoibam
źródło
1

Ponadto upewnij się, że lista nazw hostów nie przekracza 20 nazw. Często odwiedzam witrynę, która lubi umieszczać reklamy na twojej twarzy, więc przypisuję nazwę FQDN z wyskakującego okienka jako alias localhost. Ostatnio odkryłem, że mój plik hosts nie działa. Wydaje się, że limit wynosi 20 hostów ... Przykład:

127.0.0.4 www.slutebox.com static.exoclick.com www.gameskwala.com www.thefreecamsecret.com www.slutebox.com cdn1.adexpert.com cdn2.adexpert.com cdn3.adexpert.com cdn3.adexperts.com abine. com www.abine.com e1.static.hoptopboy.com.rncdn1.com gameinvite.24trk.com main.exoclick.com 0427d7.se syndication.exoclick.com 0427d7.se gamingruff.com www.gamingruff.com mackeeperapp.zeobit. com 
127.0.0.5 ads.adplxmd.com mackeeperapp3.mackeeper.com onclickads.net onclick.net fundownloads108.com pussl10.com rumorsleague.com kitsfilesdll.com pussl8.com nowsetup.enterworldofupgrading.review playgr8.com autoupdate.thebigandgoodfreeade. .com www.hitcpm.com www.ibtimes.co.uk mysagagame.com
tc0nn
źródło
0

/ etc / hosts muszą mieć zakończenia linii w stylu uniksowym.

W moim przypadku użyłem Sublime i zapisałem / etc / hosts z domyślnym stylem Mac OS. To był powód problemu.

Rozwiązanie zaczerpnięte stąd: https://stackoverflow.com/a/42265844/1331420

Aleksander
źródło
-1

Może to być użycie TAB zamiast SPACJI. Był w moim przypadku. Naprawiono to ładnie!

Tomachi
źródło
2
Czy możesz coś więcej rozwinąć?
Toto
-1

Dla mnie problemem było wklejenie szczegółów. Opróżnianie pamięci podręcznej itp. Nie działało.

Usunięcie oryginalnego wpisu i ręczne wpisanie wszystkiego, a następnie zadziałało 1 raz!

Eddie
źródło