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:
ipconfig /flushdns
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):
ping www.example.com -n 1
ping -6 ipv6.example.com -n 1
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):
nbtstat -R
Możesz sprawdzić bieżące dane w pamięci podręcznej DNS za pomocą:
ipconfig /displaydns | more
2. Podstawy
- Czy Twój plik hosts jest poprawnie nazwany? Powinno być
hosts
i nie host
itd.
- Czy rozszerzenie jest prawidłowe? Nie powinien mieć rozszerzenia (
hosts
nie hosts.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”.
- Czy przestrzegałeś poprawnej składni ? Czy przypadkowo prefiksowałeś linie hash (
#
), które wskazują na komentarze?
- Czy zadbałeś o wszystkie warianty (
www.example.com
i example.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
, ASCII HT
, szesnastkowy 0x09
) lub pojedyncza spacja (szesnastkowa 0x20
), 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
, ASCII CRLF
, szesnastkowy 0x0d 0x0a
).
Przykładowe wpisy, wykorzystujące obrazy kontrolne Unicode do wskazania znaków kontrolnych. (Nie kopiuj i nie wklejaj ich do pliku hosts!)
192.0.2.1␉www.example.com␍␊
2001:db8:8:4::2␉ipv6.example.com␍␊
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:
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath
Wpis powinien być:
%SystemRoot%\System32\drivers\etc
5. Uprawnienia
Czasami występują problemy z uprawnieniami do pliku, atrybutami pliku i podobnymi rzeczami. Aby ponownie utworzyć plik z domyślnymi uprawnieniami:
- Utwórz nowy plik tekstowy na pulpicie.
- Skopiuj i wklej zawartość bieżącego pliku hosts do tego pliku w Notatniku.
- Zapisz nowy plik tekstowy i zmień jego nazwę na
hosts
.
- Skopiuj ( nie przenoś ) plik do
%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):
- Przejdź do
%SystemRoot%\System32\drivers\etc
w Eksploratorze Windows.
- Jeśli nie widzisz
hosts
pliku, upewnij się, że widzisz pliki ukryte i systemowe .
- Kliknij
hosts
plik prawym przyciskiem myszy i wybierz Properties
z menu kontekstowego.
- W
hosts Properties
oknie kliknij Security
kartę.
- Sprawdź listę nazwisk w
Group or user names:
polu. Jeśli %COMPUTERNAME%\Users
jest obecny, kliknij go, aby wyświetlić uprawnienia.
- Jeśli
Users
nie jest obecny lub jest obecny, ale nie ma Read
pozwolenia, kliknij Edit...
.
- Jeśli
Users
nie jest obecny, kliknij Add...
, wpisz Users
, kliknij Check Names
i kliknij OK lub naciśnij Enter.
- Wybierz
Users
i upewnij się, że Read & execute
jest zaznaczone w Allow
kolumnie. Kliknij OK. Jeśli pojawi się Windows Security
okno alertu, wybierz opcję Yes
kontynuowania.
- Kliknij przycisk OK, aby zamknąć
hosts Properties
okno.
- Przejdź do sekcji 1 tej odpowiedzi i postępuj zgodnie ze wskazówkami, aby sprawdzić, czy teraz działa.
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ładlocalhost;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
x.x.x.x myhost.local www.myhost.local
nawet jeśli www.myhost.local nie istnieje. Windows jakoś nie dołącza swojej grupy roboczej ani domeny lokalnej.