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

23

Моя рабочая станция (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 не содержит этой строки.

Любые идеи??? Заранее спасибо за помощь!

cmcculloh
источник
что происходит, когда вы создаете новую запись для этого ip, скажем, 172.17.1.107 wikitest?
Шуфлер

Ответы:

24

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

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

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

Artifex
источник
1
Да, на самом деле, я обнаружил, что есть корпоративный прокси, который перехватывает мои запросы и отвечает на них. Каким-то образом это было в обход моего файла хостов. Если в корпоративном прокси была запись, то она переопределяла запись моего локального хоста. Хотя этот ответ на самом деле не говорил «как» решить проблему, он определил
истинную
1
Когда у меня возникла проблема, это было легко исправить. Я решил не использовать прокси на этом IP (в настройках прокси в Firefox). Это исправление может не относиться к вашей проблеме (брандмауэр может блокировать исходящий HTTP без прокси и т. Д.). Это также может быть суровое развертывание на нескольких машинах, если у вас нет централизованного управления профилями Mozilla. Я не могу ответить за IE, так как мы не используем его.
artifex
3
.. * сука * выкатилась .. Лол
манас
1
Прошло всего 4 года, прежде чем кто-то заметил @silent_warrior;)
artifex
1
@artifex Спасибо за ваш ответ и комментарий, это привело меня к пониманию, что я могу создавать исключения, которые решают мою проблему. Кто-нибудь заинтересован, смотрите здесь: stackoverflow.com/questions/37658876/…
haakym
9

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

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

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

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

\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath
Кайл Брандт
источник
1
1: Ответ от 172.17.1.107: байт = 32 времени <1 мс TTL = 63 2: Нет, просмотрена полоса прокрутки всего файла хостов и все ... 3: DataBasePath, Type = "REG_EXPAND_SZ", Data = "% SystemRoot% \" System32 \ drivers \ etc «Эта часть% SystemRoot% заинтересовала меня, поэтому я открыл« Переменные среды »и искал переменную SystemRoot. Я его не видел, поэтому я создал его и установил его в C: \ Windows, затем сделал ipconfig / flushdns и отправил ping на www.wiki.com, но он по-прежнему отвечал с 70.35.23.23 вместо 172.17.1.107 (который что я установил в моем файле hosts). Спасибо хоть! Хорошие предложения всем!
cmcculloh
Хороший улов, моя система загружалась с диска E: а не C: как ожидалось.
Мэнни,
5

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

 ipconfig /flushdns

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

надрываться
источник
Это первое, что попробует человек ...
vsync
3

Согласно 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 ) для запроса / очистки этого кэша.

Максимус Минимус
источник
когда я запускаю команду «nbstat», я получаю «nbstat» не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл »
cmcculloh
nbtstat, а не nbstat - вам не хватает первой буквы "t" ... :)
Maximus Minimus
упс: P Ладно, выполнил nbtstat -R и nbtstat -RR и nbtstat -r, а затем nbtstat -c (и там было сказано «нет имен в кэше)
cmcculloh
и это все еще не работает между прочим
cmcculloh
3

Оказывается, что мой корпоративный 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 из цикла командной строки, но не из цикла браузера, я думаю ... Есть идеи?

cmcculloh
источник
1
Здравствуй. Приятно слышать, что у вас есть обходной путь. Но насколько я знаю, файл hosts всегда должен использоваться в первую очередь для поиска DNS перед каждой записью в вашем списке серверов DNS. Можно ли полностью деактивировать поиск в файле hosts с помощью некоторых опций dhcp? Может быть, вы можете добавить свои корпоративные DNS-серверы в качестве третьей и четвертой записи в списке DNS-серверов.
grub
Возможно, ваши веб-браузеры настроены с прокси-сервером?
Оскар Дюверборн
2

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

mikedopp
источник
2

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

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

nvuono
источник
2

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

%SystemRoot%\system32\drivers\etc\hosts

Майк
источник
2

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

peterr
источник
Это исправило это для меня. Я просто добавил группу «Пользователи» непосредственно в файл hosts, очистил кеш, и файл hosts снова был сразу же восстановлен.
user51928
2

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

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

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

Hugo der Hungrige
источник
Спасибо, это просто сэкономило мне много времени и разочарований.
Энди Лестер
2

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

Как здесь:

127.0.0.1 localhost
172.17.1.107 wiki
Ахмад Ахмад
источник
1

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

olefebvre
источник
Какими должны быть разрешения (сейчас файл не только для чтения и все разрешения установлены для всех пользователей)? Я попытался установить на www.wiki.com, и он все еще не работал. (Я изменил строку на 172.17.1.107 www.wiki.com) Затем я открыл свою командную строку и попытался пропинговать www.wiki.com, и он возвратил «Pinging www.wiki.com [70.35.23.23] с 32 байтами данных "но затем он сказал" Запрос истек "три раза. Затем все, что я пытался пинговать, вернуло время ожидания запроса. Сейчас я нахожусь в процессе установки BIND, чтобы попытаться исправить это, я не знаю, повлияет ли это на
эхо-
И теперь я либо неправильно установил BIND, либо мой компьютер тоже это игнорирует, потому что он тоже не работает ...
cmcculloh
Попробуйте удалить файл и создать новый, без копирования / вставки. Может быть, какой-нибудь текстедитор вставил туда нечетные символы (UTF8).
olefebvre
1

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

JamesRyan
источник
Да, все в lmhosts.sam закомментировано и есть только две строки, которые я указал в исходном вопросе в моем файле hosts ...
cmcculloh