Файл HOSTS игнорируется

Моя рабочая станция (Windows XP, Professional, v2002, SP3) полностью игнорирует мой файл hosts.

Вот код в моем файле hosts:

127.0.0.1       localhost

172.17.1.107    wiki

Но когда я открываю браузер и набираю "wiki" в строке URL-адреса и нажимаю "Enter", я возвращаюсь к старому расположению моей вики, как оно появилось в моем старом файле hosts:

10.0.36.100     wiki

Несмотря на то, что я переименовал старый файл hosts в hosts_full и переместил его на свой рабочий стол (то есть полностью из папки etc).

До сих пор я предпринял следующие шаги:

  1. Перезапущено (3 раза)
  2. Ран ipconfig /flushdns из командной строки
  3. Ран ping wiki из командной строки ответ был

Reply from 10.0.36.100: bytes=32 time=1ms TTL=63

Я очистил каждый кеш, который могу придумать (IE, FF).

У меня есть клиент брандмауэра ISA, который работает на моей машине, и я пробовал все это с отключенным и включенным. Фактически, межсетевой экран использует старый файл hosts для разрешения самого себя:

10.0.2.126      isa3

И почему-то все равно работает нормально, хотя новый файл hosts не содержит этой строки.

Есть идеи??? Заранее спасибо за помощь!

13 ответов

Решение

Есть ли шанс, что вы используете прокси-сервер для просмотра? Если это так, возможно, прокси-сервер разрешает имя DNS для вас.

И именно поэтому вы получаете разные результаты в командной строке с пингом, в отличие от браузера.

Несанкционированный трафик перехватывается и изменяется. Очень случайно...

Брандмауэр, отвечающий на эхо-запросы?
Это длинный выстрел с IP-адреса, который вы дали, но что произойдет, когда вы пингуете новый IP-адрес напрямую, это работает?

Причина, по которой я спрашиваю: если 10.0.36.100 окажется брандмауэром, который отвечает на эхо-запрос, он ответит ответом, даже если вы пинговали другой IP-адрес....

Файл больших хостов?
Кроме того, это однажды получило меня и другого айтишника, там было много пустых строк в файлах хостов окна, а затем записи внизу - мы не заметили полосу прокрутки:-)

Является ли файл hosts действительно файлом hosts?
Наконец, посмотрите в реестре и убедитесь, что файл хоста находится там, где вы думаете, следующий ключ указывает, где находится файл хостов:

\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath

Попробуйте очистить кэш DNS с помощью Пуск -> Выполнить...

 ipconfig /flushdns

Также попробуйте отключить NetBIOS и LMHOSTS для вашего сетевого адаптера. Вы можете изменить настройки в свойствах TCP/IP используемого сетевого подключения, в разделе "Дополнительно" -> "WINS".

Оказывается, что мой корпоративный DNS был поражен перед моим файлом hosts. Так что я:

  1. Открыл мои свойства TCP/IP (Панель управления> Сетевые подключения> Подключение по локальной сети> Свойства> (прокрутить вниз) Протокол Интернета (TCP/IP) > Свойства.
  2. Нажмите "Использовать следующие адреса DNS-серверов:" (вместо получения адреса DNS-сервера автоматически)
  3. ввел "172.0.0.1" и "172.0.0.2" (и нажал ok)

Теперь мой файл hosts работает нормально... Из командной строки. Однако, если я добавлю запись для www.google.com, которая указывает на 172.17.1.107, когда я пингую ее из командной строки, она возвращается с IP-адреса, указанного в файле hosts. Но если я нажму на него из браузера, он все равно покажет мне Google вместо моего локального сайта. Но если я добавлю запись для "fredspc", которая указывает на 172.17.1.107, и нажму на нее из браузера, я перейду на 172.17.1.107.

Я понял это, потому что если я введу "tedspc" в моем файле hosts (то есть что-то, что никогда не будет разрешено), назначу ему IP-адрес и отправлю ping, он будет преобразован в этот IP-адрес. Проблема заключалась в том, что www.wiki.com и все, что я вводил в свой файл hosts, имели запись на моем корпоративном DNS-сервере, что приводило к его разрешению, что означало, что он никогда не просматривал мой файл hosts (потому что корпоративный DNS-сервер сначала просматривается перед файлом hosts). Итак, я вырезал корпоративный DNS из цикла командной строки, но не из цикла браузера, я думаю... Есть идеи?

Согласно http://technet.microsoft.com/en-us/library/bb727005.aspx он может находиться в локальном кэше имен NETBIOS. Вы можете использовать nbtstat ( http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/nbtstat.mspx?mfr=true) для запроса / очистки этого кэша.

Я только что догнал изменение C: \ windows\ system32 \ drivers \ etc \ hosts, когда %SystemRoot% был определен как C:\WINNT вместо C: \ windows... Я не знаю, почему на этом конкретном сервере была целая установка windows в C: \ windows и C: \ winnt, но по крайней мере я больше не чувствую себя безумным.

Я чувствую себя немного глупо, но это просто еще одна быстрая проверка для других людей, которые сталкиваются с этой проблемой!

Перепробовав множество предложенных решений, я проверил безопасность папки "etc" и сравнил ее разрешения с правами доступа к папке "es-ES" и обнаружил, что группа "Пользователи" не имеет прав на чтение и выполнение, как на Другой. После того, как я снова стал владельцем папки "etc", я предоставил группе "Пользователи" права "Чтение и выполнение" и унаследовал их от содержимого папки. Это решило проблему для меня - любая часть системы, запрашивающая файл hosts, очевидно, находится под ограничениями группы пользователей. Должно быть, в какой-то момент я случайно удалил разрешения группы при попытке изменить файл hosts.

Пожалуйста , попробуйте использовать пробелы вместо вкладок.

Как здесь:

127.0.0.1 localhost
172.17.1.107 wiki

Каждый раз, когда я использую файл хоста для своих записей DNS (что всегда), я отключаю (отключаю) службу DNS (services.msc), работающую в исходном режиме. Затем выполните ipconfig /flushdns, если это не удалось, перезагрузите указанный сервер / рабочий стол, и это очистит кеш. Какие записи DNS отсутствуют в файле хоста, сервер / рабочий стол будет использовать настройки DNS по умолчанию для Сетевого интерфейса, которые были настроены. Это также позволяет тестировать различные брандмауэры и тому подобное.

Вы уверены, что редактируете файл RIGHT hosts? Обычно это находится в

%SystemRoot%\system32\drivers\etc\hosts

Удаление исходного файла в Windows и замена его новым очень важно!

Я знаю, что на вопрос дан ответ, но ясно, что есть много разных причин и возможных решений. Для меня было уловкой удалить файл, а не перезаписать его.

Я также знаю, что @olefebvre уже опубликовал что-то похожее, но я не узнал это по его аббревиатурам, и оно не связано (только) со странными символами, оно вообще имеет окна для распознавания файла.

Не могли бы вы проверить свое разрешение на файл хоста? Попробуйте использовать полное доменное имя для записи вики-файла хоста.

Вы проверили хосты и lmhosts.sam?

Другие вопросы по тегам