Исходя из моего собственного опыта и того, с чем я столкнулся во время Google, вот несколько вещей, которые можно попробовать:
1. Вы проверили, что это работает правильно?
Изменения хостов должны вступить в силу немедленно, но Windows кэширует данные разрешения имен, поэтому в течение некоторого времени могут использоваться старые записи. Откройте командную строку (Windows + R cmd,, Enter) и введите:
ipconfig /flushdns
Сбросить старые данные. Чтобы проверить, работает ли он, используйте (при условии, что у вас есть запись ipv4 на ваших хостах для www.example.com или запись ipv6 на ваших хостах для ipv6.example.com):
ping www.example.com -n 1
ping -6 ipv6.example.com -n 1
И посмотрите, использует ли он правильный IP. Если да, ваш файл hosts в порядке и проблема в другом месте.
Кроме того, вы можете сбросить кэш NetBios с помощью (откройте консоль как администратор или она не будет работать):
nbtstat -R
Вы можете проверить текущие данные в кеше DNS:
ipconfig /displaydns | more
2. Основы
- Правильно ли назван ваш файл hosts? Так должно быть
hostsи нет hostи т. Д.
- Является ли расширение правильным? У него не должно быть расширений (
hostsнет hosts.txt) - будьте осторожны, если вы настроили окна для скрытия известных расширений, проверьте свойства, чтобы убедиться: правильный тип файла хостов будет отображаться как «Файл».
- Вы придерживались правильного синтаксиса ? Вы случайно добавили в префикс строки хэш (
#), который указывает на комментарии?
- Вы позаботились о всех вариантах (
www.example.comи example.com- безопаснее всего просто добавить оба)?
3. Пробелы
Формат для каждой строки: IP addressгоризонтальная табуляция (escape-код \t, ASCII HT, hex 0x09) или один пробел (hex 0x20), затем имя хоста, т.е. www.example.com, затем, наконец, возврат каретки с последующим переводом строки (escape-коды \r\n, ASCII CRLF, hex 0x0d 0x0a).
Примеры записей с использованием управляющих изображений Unicode для обозначения управляющих символов. (Не копируйте и не вставляйте их в файл hosts!)
192.0.2.1␉www.example.com␍␊
2001:db8:8:4::2␉ipv6.example.com␍␊
Отдельные байты можно просматривать в Notepad ++ с помощью плагина hex hex editor . Notepad ++ также будет отображать специальные символы (Вид -> Показать символ), чтобы вы могли легко проверить количество и вид пробельных символов.
Если вы скопировали и вставили записи хостов откуда-то, вы можете получить несколько пробелов. В теории хосты поддерживают несколько пробелов, разделяющих два столбца, но это еще одна вещь, которую стоит попробовать, если больше ничего не работает.
Чтобы быть в безопасности, убедитесь, что все строки в вашем хост-файле используют табуляции или пробелы, а не оба.
Наконец, завершите файл пустой строкой.
4. Ключ реестра
Существует раздел реестра, указывающий расположение файла hosts. Предположительно, Windows на самом деле не поддерживает размещение файла hosts в других местах, но вы можете проверить это. Ключ:
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath
Запись должна быть:
%SystemRoot%\System32\drivers\etc
5. Разрешения
Иногда возникают проблемы с разрешениями для файла, атрибутами файла и подобными вещами. Чтобы воссоздать файл с разрешениями по умолчанию:
- Создайте новый текстовый файл на рабочем столе.
- Скопируйте и вставьте содержимое вашего текущего файла hosts в этот файл в Блокноте.
- Сохраните новый текстовый файл и переименуйте его в
hosts.
- Скопируйте ( не перемещайте ) файл в свой
%SystemRoot%\System32\drivers\etcкаталог и перезапишите старый файл.
Последний пункт важен: копирование работает, перемещение - нет.
Локальная Usersучетная запись должна иметь возможность читать файл hosts . Чтобы убедиться (в Windows 7):
- Перейдите к
%SystemRoot%\System32\drivers\etcв проводнике Windows.
- Если вы не видите
hostsфайл, убедитесь, что вы видите скрытые и системные файлы .
- Щелкните правой кнопкой мыши по
hostsфайлу и выберите Propertiesиз контекстного меню.
- В
hosts Propertiesокне нажмите на Securityвкладку.
- Изучите список имен в
Group or user names:поле. Если %COMPUTERNAME%\Usersприсутствует, нажмите на него, чтобы просмотреть разрешения.
- Если
Usersнет, или присутствует, но не имеет Readразрешения, нажмите Edit....
- Если
Usersего нет, нажмите Add..., введите Users, нажмите Check Namesи нажмите OK или нажмите Enter.
- Выберите
Usersи убедитесь, Read & executeчто отмечен в Allowстолбце. Нажмите ОК. Если появится Windows Securityокно с предупреждением, выберите « YesПродолжить».
- Нажмите OK, чтобы закрыть
hosts Propertiesокно.
- Перейдите к разделу 1 этого ответа и следуйте инструкциям, чтобы проверить, работает ли он сейчас.
6. Кодировка
Файл hosts должен быть закодирован в ANSI или UTF-8 без спецификации. Вы можете сделать это с помощью File -> Save As.
7. Прокси
Если у вас настроен прокси, он может обойти файл hosts. Решение состоит в том, чтобы не использовать прокси-сервер или настроить его так, чтобы он этого не делал.
Чтобы проверить, зайдите в Internet Explorer -> Свойства обозревателя -> Подключения -> Настройки локальной сети. Если все пусто и установлен флажок «Автоматически определять настройки», прокси не используется.
Если вы используете прокси-сервер для доступа в Интернет и, следовательно, не хотите его отключать, вы можете добавить исключения, перейдя в Internet Explorer -> Свойства обозревателя -> Подключения -> Параметры локальной сети -> Прокси-сервер / Дополнительно. Затем добавьте исключения в текстовое поле «Исключения». Напримерlocalhost;127.0.0.1;*.dev
8. DNS-адрес
(Это также может решить проблемы с прокси.)
Перейдите к свойствам сетевых подключений, затем настройкам TCP / IP и измените первый DNS-сервер на 127.0.0.1(localhost). Второй, вероятно, должен быть вашим действительным IP-адресом DNS.
Это не обязательно для работы файла hosts , но в вашем случае это может помочь, если что-то настроено странно.
9.. Локальные адреса
Если вы используете запись домена .local в форме myhost.local и она игнорируется, попробуйте следующее
x.x.x.x myhost.local www.myhost.local
даже если www.myhost.local не существует. Windows как-то не добавляет свою рабочую группу или локальный домен.