Почему localhost не работает в Windows 8.1, а 127.0.0.1 работает?

1

У меня HTTP-сервер работает на порту 9876.

Я помещаю http://127.0.0.1:9876/в Chrome и страница загружается мгновенно.

Я помещаю http://localhost:9876/в Chrome и страница никогда не загружается.

Я никогда не изменял C: \ Windows \ System32 \ drivers \ etc \ hosts.

Каждая строка в файле hosts закомментирована.

Следующие строки существуют в файле и могут иметь отношение:

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost

Как я уже сказал, я не добавил эти строки сам. Я не редактировал файл hosts.

Очевидно, я могу раскомментировать вторую строку, чтобы заставить localhost работать. Но зачем это нужно, если первая строка верна? Microsoft написала первую строку? Похоже, они говорят мне, что localhost будет работать без определения.

ЦСП
источник
Ваш HTTP-сервер также прослушивает ::1или только IPv4?
Jscott
1
Просто ipv4. , ,
cja
раскомментируйте его, и вы получите свою localhostспину)
alexus
Первая строка предполагает, что вы используете DNS на своем компьютере, и что localhost будет преобразовываться в ваш локальный IP-адрес.
Стив Батлер
@ SteveButler Хорошо, вставь это в ответ, и я приму это. Также, можете ли вы объяснить, почему MS решила отключить localhost по умолчанию?
ЦСП

Ответы:

0

Я не могу найти надежную документацию, но она появляется, так как в Windows 7 они изменили разрешение localhost на DNS. Я предполагаю, что служба DNS-клиента на самом деле возвращает localhost, когда вы выполняете операцию, потому что ваш DNS-сервер, где бы он ни находился, вероятно, не разрешит localhost. Вы всегда можете установить файл hosts, и он должен переопределить то, что дает вам DNS-клиент.

Вот, по крайней мере, доказательство того, что он изменился со времен Windows 7:

http://support.microsoft.com/kb/972034

Я предполагаю, что это служба DNS, потому что в моем окне Win8 эти строки закомментированы, и все же localhost разрешается обратно в :: 1, и, конечно, мой DNS не настроен для IPv6, и даже если бы это было так, он не будет разрешить localhost.

Стив Батлер
источник
1

Если вы удалите второе '#', localhost также должен работать.

из

# 127.0.0.1     localhost

в

127.0.0.1     localhost
Poliquin
источник
Извините - я понимаю, что не объяснил свое понимание. Пожалуйста, смотрите новый заключительный абзац в вопросе.
cja
«127.0.0.1», вероятно, (жестко) закодировано в стек TCP / IP, но не «localhost»
Poliquin
Что означает комментарий? Это означает, что localhost работает без записи в файле hosts
cja
@cja Да, это должно работать без этой записи в файле localhost. Не уверен, почему это не для вас.
Майкл
0

Комментарий говорит о реализации DNS в самой Windows, а не о реализации DNS в Chrome.

Дэвид Шварц
источник
Это то, что я думал
cja
0

Да, Microsoft действительно сделала это изменение. Очевидно, это связано с тем, что на компьютере с IP6 (будет более распространенным в будущем) запись по умолчанию разрешения localhost на IP4-адрес приведет к тому, что он не будет работать. Поэтому они переместили эту логику в сам распознаватель DNS, где их можно было отключить независимо.

Источник: https://serverfault.com/a/9665/104049

Майкл
источник
-1

Обновление до Windows 8.1 удалит некоторые или, возможно, все добавленные сервисы ... т.е. Apache, MySQL. Просто посмотрите на сервисы, запущенные на вашем компьютере, и вы заметите, что все ваши веб-сервисы УХОДИЛИ.

Питер
источник
Добро пожаловать в Супер пользователя! Это не отвечает на вопрос OP - нет никаких признаков того, что это изменилось как часть обновления.
бертиб
Кроме того, вопрос явно говорит о том http://127.0.0.1:9876/, что работает, поэтому, очевидно, локальный сервис все еще работает.
Скотт