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

5 ответов5

4

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

3

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

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

0

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

0

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

0

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .