Plik hosts na komputerach z systemem Windows służy do wiązania określonych ciągów nazw z określonymi adresami IP w celu zastąpienia innych metod rozpoznawania nazw.
Często decyduje się na zmianę pliku hosts i odkrywa, że zmiany nie działają, lub że później nawet stare wpisy w pliku hosts są ignorowane. Może to powodować wiele błędów „gotcha”, a ustalenie, które z nich może być frustrujące.
W obliczu problemu ignorowania pliku hosts przez system Windows, jaki jest kompleksowy protokół rozwiązywania problemów, którego można przestrzegać?
To pytanie ma duplikaty w SO, takie jak ignorowanie pliku HOSTS
Jednak mają one zazwyczaj do czynienia z konkretnym przypadkiem, a gdy jakikolwiek błąd popełniony przez PO zostanie znaleziony, dyskusja jest zakończona. Jeśli nie popełniłeś tego samego błędu, taka dyskusja nie jest zbyt przydatna. Pomyślałem więc, że bardziej przydatny byłby ogólny protokół rozwiązywania wszystkich problemów związanych z hostami, który obejmowałby wszystkie przypadki.
Odpowiedzi:
Na podstawie własnego doświadczenia i tego, co spotkałem podczas Google, oto kilka rzeczy do wypróbowania:
1. Czy sprawdziłeś, czy działa poprawnie?
Zmiany w hostach powinny obowiązywać natychmiast, ale system Windows buforuje dane rozpoznawania nazw, więc przez pewien czas mogą być używane stare rekordy. Otwórz wiersz poleceń (Windows + R
cmd
,, Enter) i wpisz:Aby usunąć stare dane. Aby sprawdzić, czy to działa, użyj (zakładając, że masz wpis ipv4 na swoich hostach dla www.example.com lub wpis ipv6 na twoich hostach dla ipv6.example.com):
I sprawdź, czy używa prawidłowego adresu IP. Jeśli tak, plik hosts jest w porządku, a problem występuje gdzie indziej.
Możesz także zresetować pamięć podręczną NetBios za pomocą (otwórz konsolę jako administrator, bo to się nie powiedzie):
Możesz sprawdzić bieżące dane w pamięci podręcznej DNS za pomocą:
2. Podstawy
hosts
i niehost
itd.hosts
niehosts.txt
) - należy zachować ostrożność, jeśli skonfigurowałeś system Windows do ukrywania znanych rozszerzeń, sprawdź właściwości, aby się upewnić: Poprawny typ pliku hostów będzie wyświetlany jako „Plik”.#
), które wskazują na komentarze?www.example.com
iexample.com
- najbezpieczniej jest po prostu dodać oba)?3. Biała spacja
Format każdego wiersza to
IP address
, następnie pozioma tabulacja (kod zmiany znaczenia\t
, ASCIIHT
, szesnastkowy0x09
) lub pojedyncza spacja (szesnastkowa0x20
), a następnie nazwa hosta, tj.www.example.com
, następnie w końcu znak powrotu karetki, a następnie znak wiersza (kody specjalne\r\n
, ASCIICRLF
, szesnastkowy0x0d 0x0a
).Przykładowe wpisy, wykorzystujące obrazy kontrolne Unicode do wskazania znaków kontrolnych. (Nie kopiuj i nie wklejaj ich do pliku hosts!)
Poszczególne bajty można wyświetlać w Notepad ++ za pomocą wtyczki edytora szesnastkowego . Notepad ++ wyświetla także znaki specjalne (Widok -> Pokaż symbol), dzięki czemu można łatwo sprawdzić liczbę i rodzaj białych znaków.
Jeśli gdzieś skopiowałeś i wkleiłeś wpisy hostów, możesz mieć wiele spacji. Teoretycznie hosty obsługują wiele spacji oddzielających dwie kolumny, ale kolejną rzeczą jest wypróbowanie, jeśli nic więcej nie działa.
Aby być bezpiecznym, upewnij się, że wszystkie wiersze w pliku hosts używają tabulatorów lub spacji, a nie obu.
Na koniec zakończ plik pustą linią.
4. Klucz rejestru
Istnieje klucz rejestru określający lokalizację pliku hosts. Podobno Windows nie obsługuje umieszczania pliku hosts w innych lokalizacjach, ale możesz chcieć to sprawdzić. Kluczem jest:
Wpis powinien być:
5. Uprawnienia
Czasami występują problemy z uprawnieniami do pliku, atrybutami pliku i podobnymi rzeczami. Aby ponownie utworzyć plik z domyślnymi uprawnieniami:
hosts
.%SystemRoot%\System32\drivers\etc
katalogu i zastąp stary plik.Ważny jest ostatni punkt: kopiowanie działa, przenoszenie nie.
Users
Konto lokalne musi mieć możliwość odczytu pliku hosts . Aby się upewnić (w systemie Windows 7):%SystemRoot%\System32\drivers\etc
w Eksploratorze Windows.hosts
pliku, upewnij się, że widzisz pliki ukryte i systemowe .hosts
plik prawym przyciskiem myszy i wybierzProperties
z menu kontekstowego.hosts Properties
oknie kliknijSecurity
kartę.Group or user names:
polu. Jeśli%COMPUTERNAME%\Users
jest obecny, kliknij go, aby wyświetlić uprawnienia.Users
nie jest obecny lub jest obecny, ale nie maRead
pozwolenia, kliknijEdit...
.Users
nie jest obecny, kliknijAdd...
, wpiszUsers
, kliknijCheck Names
i kliknij OK lub naciśnij Enter.Users
i upewnij się, żeRead & execute
jest zaznaczone wAllow
kolumnie. Kliknij OK. Jeśli pojawi sięWindows Security
okno alertu, wybierz opcjęYes
kontynuowania.hosts Properties
okno.6. Kodowanie
Plik hosts powinien być zakodowany w ANSI lub UTF-8 bez BOM. Możesz to zrobić za pomocą Plik -> Zapisz jako.
7. Proxy
Jeśli masz skonfigurowany serwer proxy, może on ominąć plik hosts. Rozwiązaniem jest nieużywanie serwera proxy lub skonfigurowanie go tak, aby tego nie robić.
Aby to sprawdzić, przejdź do przeglądarki Internet Explorer -> Opcje internetowe -> Połączenia -> Ustawienia sieci LAN. Jeśli wszystko jest puste, a opcja „Automatycznie wykryj ustawienia” jest zaznaczona, nie używasz serwera proxy.
Jeśli korzystasz z serwera proxy w celu uzyskania dostępu do sieci i dlatego nie chcesz go wyłączać, możesz dodać wyjątki, przechodząc do przeglądarki Internet Explorer -> Opcje internetowe -> Połączenia -> Ustawienia sieci LAN -> Serwer proxy / Zaawansowane. Następnie dodaj swoje wyjątki do pola tekstowego Wyjątki. Na przykład
localhost;127.0.0.1;*.dev
8. Adres DNS
(Może to również rozwiązać problemy z serwerem proxy).
Przejdź do właściwości połączeń sieciowych, a następnie ustawień TCP / IP i zmień pierwszy serwer DNS na
127.0.0.1
(localhost). Drugim prawdopodobnie powinien być rzeczywisty adres IP DNS.Nie jest to konieczne do działania pliku hosts , ale może pomóc w twoim przypadku, jeśli coś jest dziwnie skonfigurowane.
9.. Adresy lokalne
Jeśli używasz wpisu domeny .local w postaci myhost.local i zostanie on zignorowany, spróbuj wykonać następujące czynności
nawet jeśli www.myhost.local nie istnieje. Windows jakoś nie dołącza swojej grupy roboczej ani domeny lokalnej.
źródło
hosts
plik jest używany, a zmiana go na 127.0.0.1 jest w rzeczywistości błędem, chyba że faktycznie używasz serwera DNS na swoim komputer.Upewnij się, że najpierw umieściłeś adres IP, a następnie „domenę” w następujący sposób:
źródło
127.0.0.1 bo.dev www.bo.dev ftp.bo.dev
.dev
TLD lokalnie, ponieważ nie dostaniesz kolizji. Jest to ważna ogólna globalna TLD należąca do Google i będziesz mieć z nią wiele problemów. Zobacz ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hstsDodaj uprawnienia do sprawdzania plików. Przekonałem się, że chociaż miałem uprawnienia administratora lokalnego do komputera, a tym samym do hostów. Dopiero gdy dodałem lokalnych użytkowników do uprawnień do plików hostów za pomocą Read i Read & Execute, a następnie ipconfig / flushdns, hosty stały się aktywne.
źródło
(machine)\USERS
z uprawnieniami Odczyt i Odczyt i wykonanie, a potemipconfig /flushdns
zadziałało. Dziękuję bardzo. Bardzo się cieszę, że w końcu udało mi się odzyskać plik hosts.W moich przypadkach próbowałem Windows 7 utworzony plik: C: \ Windows \ System32 \ drivers \ etc \ hosts.ics.
hosts.ics:
W rezultacie system Windows ignoruje ustawienia w C: \ Windows \ System32 \ drivers \ etc \ hosts i używa go z hosts.ics.
źródło
Hosts
plik tylko dlatego, żeHosts.ics
jest obecny. Coś innego może powodować ignorowanie plików Hosta przez system Windows, na przykład nieprawidłowe (ale ukryte) rozszerzenie.Wystąpił ten sam problem: wpisy plików hostów są ignorowane. Próbowałem wszystkiego w tym i wielu innych wątkach bez powodzenia. Pomyślałem, że opublikuję to, co dla mnie zadziałało, na wypadek, gdyby ktoś się z tym spotkał.
Uwaga: po prostu otwarcie pliku hosts i usunięcie zawartości, sprawdzenie, czy był to 0kb i ponowne dodanie nie działało. Podejrzewam, że w pliku występuje problem z uprawnieniami.
źródło
hosts.bak
, a następnie postępuj zgodnie z opisem w kroku 3.Spędziłem nad tym godziny, prawdopodobnie dni.
Zabezpieczenia IBM Trusteer Endpoint Rapport mogą powodować ten problem.
Dodałem mysite.com do listy zaufanych stron.
Myślę, że w ramach jego bezpieczeństwa zapobiega złośliwemu oprogramowaniu lub wirusom przekierowującym na alternatywne strony.
Przejął moją stronę z listy zaufanych stron i już nie sprawdza i „koryguje” przekierowanie plików moich hostów.
Mam nadzieję, że ktoś pomoże rozwiązać problem.
źródło
Upewnij się, że wprowadziłeś wartości jako
IP NAME
, a nie jakoNAME IP
.Może się to zdarzyć, jeśli w pliku jest powiedzmy tylko jeden wpis i jeśli zignorujesz tekst komentarza.
źródło
Jednym z problemów pominiętych w powyższej dyskusji są niekwalifikowane nazwy (nazwy, które nie zawierają kropki) w pliku hosts. Twoje ustawienia sieciowe mogą zostać uruchomione w tym momencie i automatycznie dodawać własną domenę na końcu niekwalifikowanej domeny. W związku z tym nazwa może nie zostać rozwiązana lub, co gorsza, może zostać zastosowana na zupełnie innym komputerze.
źródło
W systemie Windows upewnij się, że HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ DataBasePath jest skierowany do katalogu pliku hosts.
źródło
W moim przypadku problem polegał na tym, że kopiowałem plik hosts z zaszyfrowanego katalogu i przesłoniłem nim etc / hosts. Musiałem spojrzeć na właściwości i odznaczyć pole wyboru „szyfruj plik”.
źródło
Plik mojego hosta jest ignorowany, dopóki nie mam połączenia sieciowego na moim laptopie (Windows 7). Po podłączeniu do sieci wszystko działa zgodnie z oczekiwaniami. Oczywiście bez sieci nie mogę pingować hostów itp., Ale nadal spodziewałem się, że Windows otrzyma ich adresy IP z pliku hosts. Tak nie jest. Nawet po rozłączeniu nadal wyszukuje adresy OK, ale między ponownym uruchomieniem komputera a pierwszym połączeniem z siecią ignoruje plik hosts.
(Nawiasem mówiąc, tabulatory, spacje i brak powrotu karetki są nieistotne, o ile mogę powiedzieć).
źródło