Файл Windows 7 etc / hosts не работает?

3182
ssc

У меня работает локальный веб-сервер, доступ к которому я хотел бы получить как myserver.localhost, поэтому я добавил запись

127.0.0.1 myserver.localhost 

к C:\Windows\System32\drivers\etc\hosts. Это работало нормально.

Затем что-то случилось. Среди прочего мне пришлось отключить Windows User Access Control, но я сомневаюсь, что в этом причина. Теперь система больше не реагирует на изменения в файле hosts. Я закомментировал запись, добавил новые тестовые записи, несколько раз очистил кэш DNS, перезагрузил машину, пошел на перерыв, ничего не помогает.

nslookup по-прежнему возвращает 127.0.0.1 для myserver.localhost и несуществующий домен для всех тестовых записей, которые я добавляю. Мне кажется, что сам файл каким-то образом поврежден (это просто текстовый файл, но в любом случае ...), и Windows не работает с ним и поэтому просто возвращает то, что, по его мнению, было последним хорошим результатом.

У кого-нибудь есть идеи как вернуться к работающему файлу hosts без переустановки всей системы?

0

5 ответов на вопрос

4
lg.

Как вы редактировали файл hosts? Может быть, редактор добавил расширение (.txt) к файлу! Проверьте из DOS подскажите ( dir C:\Windows\System32\drivers\etc\hosts*).

+1, хороший момент. Я всегда ** ненавидел ** эту идею скрытия расширений файлов (по умолчанию, не меньше). До сих пор помню эти дурацкие .txt.exe ... Massimo 13 лет назад 1
Первое, что я делаю, когда настраиваю систему Windows, это избавляюсь от того, что MS навязывает своим пользователям - отображает все файлы в проводнике (системные файлы и т. д.) и показывает расширения. Я проверил в DOS 'Shell', файл имеет правильное имя. Спасибо, в любом случае. ssc 13 лет назад 0
3
nhinkle

Существует общее недопонимание того, как файл HOSTS в Windows и инструмент nslookup взаимодействуют. Значение, которое вы вводите в файл HOSTS, - это то, что используется системой, когда вы устанавливаете соединение с любым доменным именем, которое вы можете указать. По сути, это жестко запрограммировано тем, что вы вводите его в файл HOSTS. Однако nslookup игнорирует файл HOSTS для чего-либо, кроме localhost. Попробуйте это: добавьте запись в файл HOSTS и сохраните файл. Сделайте nslookup: он должен вернуть реальный IP-адрес (или ни одного, если реальный адрес не существует). Теперь пингуйте хост. Он должен пропинговать IP-адрес, указанный в файле HOSTS.

Я не знаю точную причину такого поведения, но я полагаю, что nslookup всегда делает DNS-запрос, и для чего-либо на *.localhostлокальном компьютере он запрашивает адрес (следовательно, вы получаете результат из файла HOSTS ), но для чего-то еще, он запрашивает DNS-сервер, который вы настроили. Эта часть - просто предположение, но фактическое поведение, которое я описал, я наблюдал много раз.

на этой ноте одна странная вещь, которую я заметил, заключается в том, что ответ на запрос DNS поступает с сервера DNS. пинг хоста вместо nslookuping может помочь, но мы в целом отказались от Windows, смотрите мой собственный ответ на вопрос. ssc 13 лет назад 0
0
Aaron Digulla

Изменения etc\hostsпринимаются сразу. Если это не сработает, значит, вы либо редактируете неправильный файл (например, работаете удаленно и случайно выбрали неправильный сервер для монтирования SMB), либо вирус вмешивается. Убедитесь, что антивирусный сканер обновлен, и проверьте всю систему. Попробуйте второй сканер вирусов просто для безопасности.

Установка двух активных программ защиты от вирусов, как правило, не очень хорошая идея ... BloodPhilia 13 лет назад 0
это далеко не первый раз, когда я работаю с файлом hosts, я использую его почти ежедневно на Windows, Linux, Mac и т. д., поэтому внезапный сбой меня так озадачил. сначала это работало, потом перестало работать. это правильный файл, хотя и нет вируса. ssc 13 лет назад 0
0
Andreas Rehm

Вам необходимо отредактировать этот файл как администратор. В противном случае вы не можете изменить это.

Просто нажмите кнопку Пуск - введите cmd в поле ввода поиска, щелкните правой кнопкой мыши на cmd и запустите его от имени администратора. Войдите в блокнот и снова откройте файл, внесите изменения и сохраните.

Это способ, которым вы должны использовать в Windows 7.

Если он отключил UAC, и у него уже есть права администратора для своей учетной записи, в этом нет необходимости. Massimo 13 лет назад 0
Он уже смог это изменить ... BloodPhilia 13 лет назад 0
0
ssc

К сожалению, нет решения этой проблемы и нет объяснимой причины. Что-то сломало файл, и единственный способ исправить это - полная переустановка всей системы. Мы отказались от Windows в качестве платформы разработки и перешли на Mac и Linux.