Я наблюдаю странную и крайне неприятную проблему.
Любая система, не подключенная к Интернету (Windows 7 показывает значок отсутствия доступа в Интернет, потому что не может постоянно пинговать серверы Microsoft), не может даже получить доступ к локальным серверам.
Проблема заключается в том, что HOSTS
файл не используется для разрешения записей DNS при отсутствии активных сетевых адаптеров.
Вы можете воспроизвести это так:
Отключите систему от Интернета (убедитесь, что все проводные и беспроводные соединения отключены).
При необходимости добавьте запись в HOSTS
файл (например, 127.0.0.1 foobar
или 127.0.0.1 foobar.com
)
Откройте командную строку
Тип ping foobar
или ping foobar.com
На скриншотах ниже показан наглядный и наглядный пример. На первом этапе ноутбук подключается к роутеру по беспроводной сети. В HOSTS
файл имеет только три записи, и они разрешаются нормально. Во второй привязке беспроводное радио выключено, поэтому записи в HOSTS
файл игнорируется. Кроме того, обратите внимание, что пинг localhost
по-прежнему работает даже без активных сетевых адаптеров (как и 127.0.0.1
), но он использует адрес IPv6 (должен быть жестко запрограммирован).
Вы можете увидеть те же результаты в Windows XP без установленного IPv6, поэтому он не имеет ничего общего с IPv6. Я пытался тосковать, что должен решили 127.0.0.1
в то время как настольная система (без беспроводных сетевых адаптеров) была подключена через адаптер Ethernet, затем снова после вытаскивания кабеля из маршрутизатора и ожидания пары секунд, затем снова после подключения кабеля обратно. То же самое происходит, если вместо того, чтобы тянуть отключенный кабель, сетевая карта отключается программно ( [Disable]
кнопку на сетевой карте Положение дел диалог или через Диспетчер устройств).
Похоже, что HOSTS
файл читается и используется только при наличии активного сетевого адаптера, в противном случае он игнорируется. Это делает некоторые смысл в том, что если нет активных сетевых адаптеров, то предположительно не будет никакой сетевой активности, и, следовательно, нет необходимости разрешать имена хостов через HOSTS
файл.
Однако это предположение является надуманным, поскольку оно исключает возможность размещения виртуальных серверов на локальном уровне. В HOSTS
файл должен использоваться независимо от подключения к внешнему DNS-серверу, в противном случае вы не сможете использовать простые / согласованные / тестируемые имена для локально размещенных серверов, когда они не подключены к Интернету (например, веб-серверы; справочные серверы для Visual Studio, 3dsmax и т. д .; и так далее).
Кто-нибудь знает, как заставить Windows использовать HOSTS
файл, даже если нет активных сетевых адаптеров?
фигура 1: Пока беспроводная сетевая карта подключена к маршрутизатору (кабельный модем находится в режиме ожидания, поэтому нет внешнего подключения к Интернету).
фигура 2: С выключенным беспроводным радио (порт Ethernet не отключается в обоих случаях).
Рисунок 3: Те же результаты в XP без IPv6
Вы пытались проверить, правильно ли разрешаются эти имена хостов с помощью ping или чего-то еще? Это может помочь в обнаружении проблемы. Если это так, то, скорее всего, это проблема, описанная MDMarra.
Скорее всего, у вас есть служба или службы, привязанные к адресу или интерфейсу, которые больше не работают, когда вы отключили кабель. Проверьте свои файлы конфигурации.