Plik OS X 10.10.1 / etc / hosts i / private / etc / hosts jest ignorowany i nie można go rozwiązać

40

Jak mówi tytuł, uruchamianie systemu operacyjnego x 10.10.1. jeśli mam wpis w pliku hosts i wykonuję polecenie diglub nslookupnadal pokazuje inny adres IP niż ten, który znajduje się w pliku hosts, nawet po próbie opróżnienia różnych pamięci podręcznych

Próbowałem następujące ...

  1. opróżnij pamięci podręczne mdns i udns, uruchamiając:
    1. sudo discoveryutil mdnsflushcache;
    2. sudo discoveryutil udnsflushcaches;
  2. opróżnij pamięć podręczną za pomocą dscacheutil -flushcache
  3. przeładuj discoveryd.plistplik
    1. sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist
    2. sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist

mój plik hosts wygląda tak ...

% cat /private/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   localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0 localhost
166.78.60.102   admin.devsite1.com
gorelative
źródło
3
Wygląda na to, że Yosemite nie używa hostów w taki sam sposób jak wcześniej; nie opróżnia również pamięci podręcznej w ten sam sposób, a mDNS zajął miejsce na tylnym siedzeniu. forums.macrumors.com/showthread.php?t=1741422 Edytuj ahh ... Chyba masz już do azchipka.thechipkahouse.com/…
Tetsujin
dziękuję, tak, przeczytałem to już ... jeśli tak właśnie będzie OS X .. jego crummy: \
gorelative
1
Cieszę się, że nie muszę polegać na hostach na Macu, tbh; Zwykle zawsze gram w Win, gdy muszę to zrobić - choć nie jest to jedyna rzecz, która trzyma mnie teraz z dala od Yosemite :(
Tetsujin,
Tak, mój rmbp jest podstawową maszyną deweloperską, której używam niestety do tworzenia stron internetowych / sysadmin i muszę to rozgryźć, w przeciwnym razie powrócę do indywidualności.
gorelative,
Inni mogą chcieć po prostu wyłączyć ipv6 na swoich stacjach roboczych, znalazłem to, co wyjaśnia klucz: technicpages.com/how-to-disable-ipv6-in-macos-sierra - Jednak nawet po wyłączeniu ipv6 w mojej nici problem nadal występował .
James T Snell,

Odpowiedzi:

61

/ private / etc / hosts wydaje się działać normalnie dla mnie w Yosemite (wersja 10.10.1). Opróżnianie pamięci podręcznej lub resetowanie nie jest konieczne discoveryd(program rozpoznawania nazw DNS w Yosemite); sudo fs_usage | grep private/etc/hostspokazuje discoverydodczytanie pliku natychmiast po zapisaniu w nim zmian.

[Aktualizacja: discoverydbyła używana tylko w wersjach OS X 10.10.0 - 10.10.3. Zarówno we wcześniejszej, jak i późniejszej wersji, mDNSResponderzapewnia tę samą funkcję ... a także natychmiast zauważa zmiany w / etc / hosts.]

Jednak dig, nslookupi hostnie będzie w nim zobaczyć wpisy, ponieważ obwodnica rezolwerem systemu i zrobić surowych zapytań DNS. Zawsze to robili, więc nie jest to nowość w Yosemite. „Oficjalnym” sposobem wyszukiwania za pomocą resolvera systemu w OS X jest użycie dscacheutil:

dscacheutil -q host -a name www.example.com

... ale ponieważ jest to bolesne gadatliwe, zwykle używam pingzamiast tego (a następnie patrzę na pierwszą linię, w której wyszczególnia, jaki adres IP pinguje). Począwszy od 10.9, możesz także korzystać z karty Wyszukiwanie w Narzędziu sieciowym (wcześniej była używana dig, a zatem ominęła zasady wyszukiwania systemu).

BTW, proszę nie zwracać uwagi na wątek makrumorów, który łączy Tetsujin; jest pełen ludzi, którzy nie do końca wiedzą, co robią i nie rozumieją skutków własnych błędów.

Gordon Davisson
źródło
1
Dzięki Gordon, tak zdałem sobie sprawę po tym, jak pisał to, że dig, nslookupi hostnie używać lokalnego rozpoznawania nazw DNS. To powiedziawszy /etc/hostsdziała zgodnie z oczekiwaniami ..
gorelative
Jeśli zaktualizuję mój /etc/hostsplik lub /private/etc/hostsplik, to w ogóle nie będzie to odzwierciedlać za pomocą dscacheutil -q host -a name www.example.comani żadnego innego polecenia.
Trip
3
@Upewnij się, aby dodane wpisy były odpowiednio sformatowane: adres IP, spacja lub tabulator, następnie nazwa, a następnie wysuw wiersza na końcu wiersza. Spróbuj wydrukować plik hosts, cat -vet /etc/hostsaby znaki normalnie niewidoczne były widoczne. Każda linia powinna wyglądać następująco: „127.0.0.1 ^ Inetsecuritybureau.com $” („^ I” to zakładka, a „$” to kanał) lub „127.0.0.1 netsecuritybureau.com $”. Jeśli zobaczysz „^ M” (powrót karetki) tuż przed „$”, masz tekst sformatowany w systemie DOS / Windows i musisz usunąć zwrot (y) karetki.
Gordon Davisson
Ach, wow, wielkie dzięki za pomoc. Śledziłem twoje kroki, upewniając się, że to tabulator lub spacja. Mój wiersz brzmi dokładnie:, M127.0.0.1^Iyoutube.com^M^Ma następnie wykonałem, dscacheutil -flushcache; sudo killall -HUP mDNSRespondera kiedy przechodzę do youtube.com, nadal wyświetla youtube, a nie localhost.
Trip
@Trip Istnieje wiele sposobów czyszczenia niewidzialnych znaków, takich jak te w wierszu poleceń, ale zalecam edytor GUI TextWrangler - użyj menu Widok> Wyświetlanie tekstu> Pokaż niewidoczne, aby zobaczyć (i edytować) takie rzeczy jak te zwrot karetki. Ponadto jest bezpłatny i ma opcje wyświetlania / otwierania niewidocznych plików i folderów (takich jak / etc) oraz używania uprawnień administratora do edycji plików systemowych.
Gordon Davisson
17

Odkryłem kolejne zmarszczki związane z tym problemem.

Aby naprawić występujący problem, musiałem dodać wpisy plików hostów w stylu IPv6.

Wygląda na to, że Safari przeoczy wpisy IPv4, JEŚLI masz konfigurację sieci IPv6.

Musisz dodać zduplikowane wpisy, które są tłumaczone na adres lokalnego hosta IPv6 w / etc / hosts.

Wpis IPv4 127.68.56.101 facebook.com

np. wpis IPv6 fe80::1%lo0 facebook.com

itp.

JB Smith
źródło
1
Zauważ, że udało mi się go uruchomić przy użyciu najkrótszych adresów IP: 0.0.0.0 i :: 1
Ben Morrow
dzięki, również dla mnie pracował. drapałem się w głowę po przywróceniu konfiguracji vhosts / apache po aktualizacji. docenione.
Gavin
Tak, naprawiłem to również dla mnie.
advert2013
1

Mój plik hosts nadal był ignorowany po edycji w tekście. Próbowałem kilku sposobów, aby naprawić zakończenia linii, dodałem wpisy IPv6 do istniejących wpisów IPv4, ale bez powodzenia po odpowiedzi JB Smitha powyżej . Podejrzewam, że jego odpowiedź zadziałałaby, gdyby moja firma wspierała IPv6, o czym dowiedziałam się po moich próbach.

Jedynym rozwiązaniem, które działało dla mnie, było użycie tej darmowej wtyczki GUI do edycji pliku hosts.

https://github.com/specialunderwear/Hosts.prefpane/blob/master/README.mdown

Niebezpieczeństwo 14
źródło
1

Znalazłem ten artykuł, ponieważ Yosemite 10.10.5 nie odbierał zmian w plikach moich hostów i nic nie mogłem zrobić, aby to naprawić. (Uruchomiłem ponownie, próbowałem opróżnić pamięć podręczną, postępowałem zgodnie z radami, jakie mogłem znaleźć w Internecie itp.).

Odpowiedź była tak prosta, że ​​w rzeczywistości była krępująca, ale pomyślałem, że się podzielę. Użyłem textedit do edycji pliku hosts i zapisanie go jako hosts.txt zajęło mu dużo czasu. Zwykle zauważyłem coś takiego, ale używam świeżej instalacji Yosemite i jeszcze nie włączyłem opcji „pokaż wszystkie rozszerzenia plików”, więc nie wyglądało to tak, jakby nazwa pliku zmieniła się, gdy przeglądałem go na pulpicie.

Jest to więc dość oczywiste i większość osób czytających ten post prawdopodobnie już to zrobiło, ale upewnij się, że plik hosts rzeczywiście tam jest i nie został zastąpiony plikiem hosts.txt .

Aby włączyć wyświetlanie rozszerzeń nazw plików, przejdź do Findera> Preferencje> Pokaż wszystkie rozszerzenia nazw plików

Aby zatrzymać dodawanie rozszerzenia .txt do plików przez TextEdit, otwórz plik w edycji tekstu i wybierz Plik> Zapisz jako (jeśli nie widzisz pozycji menu Zapisz jako , po kliknięciu Plik przytrzymaj klawisz opcji i Zapisz jako powinien pojawiają się w menu). Poszukaj opcji Jeśli nie podano rozszerzenia, użyj „.txt” i odznacz je.

sandra
źródło
0

Wierzę, że Apple rozpozna to jako błąd (zgłosiłem dzisiaj). Zauważyłem, że nowe wpisy w/etc/hosts są pobierane, ale zmiany w istniejących wpisach są ignorowane. Więc .... zmiana nazwy hosta wpisów (np. Web1 na web1a) zapewniła mi obejście.

Wpis OLD / etc / hosts: 54.173.164.18 web1

NOWY wpis / etc / hosts: 54.174.161.12 web1a

znak
źródło
sudo dscacheutil -flushcache - opróżnia pamięć podręczną usługi katalogowej.
Kevin Buchs,
0

W moim przypadku skonfigurowałbym .ssh / config

#Host *.ourdemo.ca
  User jumpy
  ProxyCommand ssh ourjumpbox.ca -W %h:%p
Martin Cleaver
źródło
Czy mógłbyś wyjaśnić, co robi plik konfiguracyjny i jak ma to związek z pytaniem?
klanomath 21.04.16
1
Pytanie brzmiało, dlaczego wpis w lokalnym pliku / etc / hosts był ignorowany. W moim przypadku było to ignorowane, ponieważ poinstruowałem tunelowanie całego ruchu do zestawu maszyn (* .ourdemo.ca) przez skrzynkę proxy (ourjumpbox.ca). SSH posłusznie proxy przesłało połączenie, tak że ostatecznie był to plik proxy / etc / hosts używany do rozwiązania adresu, a nie mój lokalny plik / etc / hosts.
Martin Cleaver
0

Miałem bardzo podobny problem, w którym otrzymałem pocztą dwa wiersze do dodania do mojego /etc/hosts

Domena zawierała -podobnąmy-domain.com

Problemem okazał się klient poczty e-mail nadawcy - nie wspominając o MS Outlook - który przekształcił ascii -w długą -postać, którą Microsoft tak bardzo lubi, aby użyć wbudowanej automatycznej korekty do zastąpienia -ich -.

Plik hosts wyglądał idealnie i trudno było znaleźć ten problem. Kiedy usunąłem wiersze i ręcznie zapisałem, zaczęły działać.

Tak trudno było to zrozumieć, że wniknąłem głęboko w to, dlaczego klient MacOS powinien zignorować plik hosts i przejść bezpośrednio do rozpoznawania nazw.

Marco
źródło
0

Właśnie miałem ten problem. Było to spowodowane przez kopiowanie / wklejanie z hipchata zamiast pisania adresu.

Proces kopiowania dodał kilka złych znaków zamiast spacji i spowodował problem.

Przepisanie wiersza rozwiązało problem.

Tata
źródło
0

Korzystam z aplikacji SelfControl (właściwie na MacOS Mojave 10.14.4) już od dłuższego czasu i postanowiłem sprawdzić, jak SelfControl robi wpisy ... Wyglądają tak:

0.0.0.0 xyz.com
:: xyz.com
0.0.0.0 www.xyz.com
:: www.xyz.com

na tej podstawie zmieniłem wszystko na localhost, więc

127.0.0.1
::1

Prace.

igła
źródło
Nie jestem pewien, jak to w ogóle odpowiada na pytanie. Wydaje się to tylko przypadkową obserwacją niezwiązaną z pytaniem.
Tetsujin
1
Czy możesz dodać kilka szczegółów na temat tego, gdzie dokładnie zmieniłeś i co ma to związek z pytaniem?
nohillside
Pytanie brzmiało, dlaczego plik hosts jest ignorowany od 10.10.1 ... Byłem w tej samej sytuacji, w której wpisy ręczne zostały zignorowane, ale wpisy wprowadzone za pomocą aplikacji SelfControl działały zgodnie z przeznaczeniem. W moich wcześniejszych wpisach brakowało drugiej części, domen z „www.”. Nie byłem w stanie dowiedzieć się, co jeszcze było nie tak z moimi wpisami, ponieważ wszystko działało dobrze przed 10.10.1.
needlol