Как Windows определяет, подключен ли компьютер к Интернету?

Если вы когда-либо сталкивались с запросом «Подключено, нет доступа к Интернету» или «В вашей Windows требуется проверка подлинности в браузере, то вам наверняка это интересно. Как наш компьютер узнает, есть ли Интернет, а когда он пропадает?
Как Windows точно знает, когда компьютер подключен к Интернету?
Эта статья отвечает на вопрос, объясняя весь процесс мониторинга интернет-соединения в Windows.
Индикатор состояния сетевого подключения
Статус подключения к сети Индикатор (NCSI) представляет собой механизм , который управляет отображением интернет подключения в панели задач, в том числе различных других функций. NCSI является частью программы Network Awareness, которая была впервые представлена в Windows Vista и с тех пор осуществляется в каждой версии Windows.
Этот механизм считается интеллектуальной системой уведомлений, позволяющей пользователям узнать о своем текущем состоянии в Интернете. Если NCSI не может выполнять свою функцию, это будет означать, что Интернет недоступен, даже если компьютер может получить доступ к Интернету через браузер и проверить связь с другими IP-адресами.
Как работает NCSI
NCSI выполняет два важных шага, чтобы проверить состояние Интернета, к которому подключен компьютер. Эти две задачи выполняются независимо.
- NCSI выполняет поиск в DNS для www.msftconnecttest.com , а затем отправляет HTTP-запрос Get на http://www.msftncsi.com/ncsi.txt и загружает текстовый файл. Это простой текстовый файл, содержащий «Тест подключения Microsoft».
- NCSI также выполняет поиск DNS для dns.msftncsi.com и проверяет, является ли соответствующий IP-адрес 131.107.255.255 .
Начиная с шага 1, если получен текстовый файл, содержащий точное соответствие, Windows устанавливает, что компьютер подключен к Интернету. Однако, если текстовый файл не загружен или был перенаправлен, NCSI переходит ко второму шагу.
Как только NCSI разрешает dns.msftncsi.com, он затем проверяет, доступна ли страница. Если страница доступна, значок сети на панели уведомлений показывает, что у нее есть доступ в Интернет.

Однако, если страница недоступна, отображается запрос на дополнительную аутентификацию. Но если разрешение DNS полностью не удается или возвращается к другому IP-адресу, значок сети отображает «Нет доступа в Интернет».

Аналогичный сценарий может произойти, если вы работаете за брандмауэром, и он блокирует весь входящий и исходящий трафик и позволяет проходить только определенному трафику. Это будет означать, что NCSI не сможет связаться с www.msftncsi.com и www.msftconnecttest.com. Это, в свою очередь, побудит Windows показать, что на вашем компьютере нет Интернета.
Обходной путь для этого — разрешить как входящую, так и исходящую связь через брандмауэр для вышеупомянутых URL-адресов.
А как насчет вашей конфиденциальности?
Согласно документации, предоставленной Microsoft на NCSI, их серверы хранят время доступа, а также IP-адреса, когда запрос поиска DNS делается на www.msftncsi.com. Хотя они утверждают, что информация является конфиденциальной, некоторым она все же может быть неудобной.
Чтобы решить эту проблему, отключите функцию NCSI в Windows. Это может быть достигнуто путем изменения системных реестров, а также из редактора групповой политики.
Как отключить NCSI из редактора реестра
- Откройте редактор реестра, введя regedit в поле « Выполнить».
- На левой панели перейдите к следующему:
HKEY_Local_Machine -> System -> CurrentControlSet -> Services -> NlaSvc -> Parameters -> Internet - Теперь дважды щелкните EnableActiveProbing на правой панели и установите для параметра Value Data значение 0.

Нажмите ОК и перезагрузите компьютер.
Как отключить NCSI из редактора групповой политики
Этой же функциональности можно достичь с помощью редактора групповой политики.
- Запустите редактор, набрав gpedit.msc в Run.
- На левой панели перейдите к следующему:
Конфигурация компьютера -> Административные шаблоны -> Система -> Управление связью через Интернет -> Настройки связи через Интернет.
- На правой панели дважды щелкните Отключить активные тесты индикатора состояния сетевого подключения Windows, а затем выберите Включено . Щелкните ОК.

- Теперь откройте командную строку, набрав cmd в Run.
- Введите gpupdate /forc e, чтобы применить изменения, внесенные в групповые политики.
Обратите внимание, что изменение этого параметра остановит связь вашей операционной системы с серверами NCSI, поэтому больше не будет выводиться запрос о том, требует ли браузер дополнительной аутентификации.
Напротив, панель уведомлений теперь покажет, что доступа в Интернет нет, даже если он есть.

У некоторых людей возникали проблемы со своими приложениями, такими как Office 365, Skype, OneDrive и Outlook, после отключения NCSI. Однако в нашем случае все приложения работали в обычном режиме.
Каким образом Windows определяет наличие выхода в Интернет?
Начиная с Vista, операционные системы Microsoft Windows научились определять функциональные возможности сетей, к которым вы подключены: система безошибочно рапортует, если ли соединение с интернетом, доступ только к локальной сети или сеть вообще недоступна. Вам когда нибудь было любопытно, каким образом это происходит? Если да — давайте посмотрим, какие механизмы задействует ОС, чтобы сообщить пользователю возможности текущего подключения.
- После подключения к сети операционная система пытается открыть файл http://www.msftncsi.com/ncsi.txt
Это обычный текстовый файл, содержащий строку Microsoft NCSI. Ожидаемый ответ от сервера — заголовок 200 ОК и эта строка. - Второй шаг — проверка работоспособоности DNS. Для этого NCSI пытается определить IP-адрес хоста dns.msftncsi.com. Ожидаемое значение — 131.107.255.255.
Варианты дальнейшего развития событий здесь таковы:
- Если оба шага успешно завершены — система рапортует о наличии соединения с Интернет.
- Если файл ncsi.txt недоступен, а dns.msftncsi.com разрешается с другим адресом, либо его IP невозможно установить, — система сообщает о недоступности подключения к Интернет.
- Если файл ncsi.txt недоступен, но dns.msftncsi.com разрешается корректно — система уведомляет пользователя возможной необходимости аутентификации посредством браузера.
Microsoft NCSI и анонимность
Веб сервер, установленный на сайте www.msftncsi.com, насколько нам известно, это IIS, хранит в логах все IP-адреса, c которых был запрошен файл ncsi.txt. Согласно заявлению Microsoft эти данные не используются для установления личности пользователя, с компьютера которого пришел запрос. В случае, когда компьютер подключен, например, к корпоративной сети предприятия, то адресом, запросившим ncsi.txt, выступает адрес компьютера, предоставляющего доступ к Интернет, как правило, посредством NAT/Proxy.
Управление и настройка NCSI
Функция Network Connectivity Status Indicator может быть настроена или отключена совсем посредством изменения её параметров через реестр.
- Чтобы совсем отключить функцию NCSI, необходимо перейти в раздел реестра
[code]HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet[/code]
и изменить значение параметра EnableActiveProbing на ноль. Проверка подключения к Интернет описанным выше способом выполняться не будет.
- Вы можете изменить адрес веб-сервера, имя и содержимое файла, запрашиваемого NCSI, а также имя и IP-адрес хоста, используемого для проверки DNS
Для этого служат соответствующие параметры в том же разделе реестра
[code]HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet[/code]
ActiveDnsProbeContent — IP-адрес хоста для проверки DNS
ActiveDnsProbeHost – имя хоста для проверки DNS
ActiveWebProbeHost — адрес веб-сайта, на котором размещен файл для проверки наличия подключения к Internet
ActiveWebProbePath – путь к файлу проверки
ActiveWebProbeContent — содержимое файла проверки
Оставшиеся параметры управляют интервалами опроса сервера.
К примеру, я могу разместить на winreviewer.com файл winreviewer.com/ncsi/ncsi.txt с содержимым winreview ncsi и использовать всё это, изменив параметры на следующие:
Единственная, на мой взгляд, причина, по которой вы можете использовать собственный ncsi-сервер — это отслеживание подключений компьютера. Например, задав подобные настройки, я получу журнал внешних IP-адресов компьютера. Впрочем, это далеко не единственный способ сформировать такой журнал. В подавляющем большинстве же случаев изменять настройки NCSI нет никаких веских причин.
Узнавайте о новых статьях быстрее. Подпишитесь на наши каналы в Telegram и Twitter.
Судя по тому, что вы читаете этот текст, вы дочитали эту статью до конца. Если она вам понравилась, поделитесь, пожалуйста, с помощью кнопок ниже. Спасибо за вашу поддержку!
Вы здесь: Главная страница » Windows » Windows 7 » Каким образом Windows определяет наличие выхода в Интернет?
Автор: Сергей Ткаченко
Сергей Ткаченко создал этот сайт в далёком 2009 году, и с тех пор продолжает над ним работать, публикуя новые материалы о Windows и её приложениях практически каждый день. Посмотреть все записи автора Сергей Ткаченко
Каким образом Windows определяет наличие выхода в Интернет?: 4 комментария
Отключился и подключился к сети заново. Затем заглянул в список разрешенных адресов (ipconfig /displaydns), msftncsi.com не обнаружилось. Почему так?
У меня тоже адрес не отображается. Странно.
есть такое подозрение, что, возможно, чтобы не загромождать общую картинку, этот адрес из вывода отфильтровывается… ipconfig майкрософтом написан
Microsoft NCSI на службе или как мы искали забытый нетбук
Microsoft NCSI или Network Connectivity Status Indicator — функция проверки работоспособности соединения с интернетом в Windows Vista/7/8. Это она показывает желтый восклицательный знак на значке сетевых подключений при отсутствии подключения к интернету, или же выдает предупреждение о возможной необходимости аутентификации в сети через браузер.
Подробнее можно почитать на Technet, я же опишу кратко суть работы:
При подключении к сети Windows пытается (для IPv4):
1) Зайти по адресу www.msftncsi.com/ncsi.txt и ожидает ответа 200 OK с телом «Microsoft NCSI»
2) Определить IP dns.msftncsi.com и ожидает ответа 131.107.255.255
Если оба пункта выдают ожидаемый результат — считается что сеть имеет доступ в интернет
Если файл недоступен, а IP определяется правильно — отображается уведомление о возможной необходимости аутентификации в сети через браузер.
Если оба шага не выдают ожидаемые результаты — считается что сеть не имеет доступа в интернет.
Адреса, ожидаемые ответы и собственно работу этой функции настроить в реестре по адресу
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet
Предыстория
Когда я узнал о принципе работы NCSI, у меня появилась идея изменить параметры на свой сервер (как из-за параноидального настроения, так и из интереса).
Подумав, я решил использовать существующую логику для удобства проверки при проблемах с интернетом дома. Традиционными состояниями были «все работает нормально», «нет связи вообще (даже до серверов провайдера)» и «доступ только до локальной сети провайдера». В итоге я настроил проверку DNS на один из ресурсов провайдера (доступного в том числе снаружи), а проверку получения файла — на свою VPS. Таким образом, если при проблемах с интернетом мне отображалось сообщение что нужно авторизоваться — значит скорее всего проблема у провайдера на выходе, и смысла звонить разбираться нет, т.к. интернет отсутствует как минимум у микрорайона.
Такая система конечно изредка давала сбои — при ковырянии VPSки или проблемах у домашнего провайдера при подключении извне выдавался ложный статус, но такие проблемы были редкими.
Узнав о моей идее, друг, сидящий на этом же провайдере, сделал себе аналогичные настройки на своих домашних устройствах, настроив проверку доступности файла на мою VPS.
Думаю многие уже догадались о принципе поиска…
День X
Вечером дня X при разговоре знакомый пишет, что судя по всему забыл нетбук в университете. Ехать практически через весь город, да и насколько помнит, забыл в кабинете скорее всего, т.е. не критично. Только не помнит в каком именно из тех, где были пары — доставал ли он его после первой пары или нет.
Статьи бы не было, если бы в этот день я не экспериментировал после разговора с веб-сервером на той самой VPS. Ища нужный лог-файл в списке по названиям доменов, глаз зацепился на лог поддомена NCSI и вспомнил о том, что у знакомого ведь настроен NCSI на мой сервер! Таким образом, можно было догадаться приблизительно о последнем месте включения нетбука по последнему IP и времени, т.к. в университете несколько точек WiFi с разными внешними IP и все были сохранены для автоподключения. Посмотрев лог и задав пару наводящих вопросов знакомому, я сказал ему где скорее всего он забыл нетбук. На следующий день знакомый сразу нашел нетбук в предполагаемой аудитории.
Вывод
В итоге получилась интересная идея — настроить у каждого устройства запрос файла со своего сервера, указав разные имена файлов для каждого устройства и настроив хранение отдельного лога на сервере. При подключении к сети IP появится в логах, что может помочь в поиске, если подобное вдруг случится. Конечно по IP не во всех ситуациях можно что-либо сказать, но в некоторых ситуациях можно быть уверенным, что забыли вы его все-таки скажем на работе или в университете, а не где-то еще. Правда под вопросом остается случай «Кто-то включил ноутбук, но на пользователя стоит пароль» — подключится ли при этом ноутбук к сохраненной сети без входа в систему или же нет?
Идея дает и негативные варианты использования — можно ведь следить за подключениями компьютера и с другими целями, но думаю что их не стоит здесь обсуждать.
Dns msftncsi com что это
Домашняя сеть из 2х компьютеров через "свитч",модем в режиме роутера.
В качестве DNS присвоен IP модема 192,168,1,1.
DHCP-отключен.Периодически (примерно раз в час ) падает интернет.В событиях сообщение: Разрешение имен для имени dns.msftncsi.com истекло после отсутствия ответа от настроенных серверов DNS. (Событие 1014,DNS Client Events) Подробно:
| + | System |
All repliesМожет быть из-за этого ? Событие 1006 ,DHCPv6-Client "Параметр RA (Router Advertisement) сетевого адаптера 14 был изменен. Флаг M (управляемая конфигурация адресов) имеет значение false, а флаг O (другая переменная конфигурация) — false. Действие пользователя: Частое отображение этого события может быть связано с частым изменением флагов M и O в параметрах маршрутизатора сети. Для решения проблемы обратитесь к администратору сети." Но DHCP отключён же. И вот ipconfig /all на момент сбоя : Microsoft Windows [Version 6.1.7600] (c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены. Настройка протокола IP для Windows Имя компьютера . . . . . . . . . : Дмитрий-ПК Тип узла. . . . . . . . . . . . . : Гибридный IP-маршрутизация включена . . . . : Нет WINS-прокси включен . . . . . . . : Нет Ethernet adapter Подключение по локальной сети: Описание. . . . . . . . . . . . . : Realtek PCIe GBE Family Controller Физический адрес. . . . . . . . . : 40-61-86-03-A5-99 DHCP включен. . . . . . . . . . . : Нет Автонастройка включена. . . . . . : Да Локальный IPv6-адрес канала . . . : fe80::b9c5:bf41:6c67:ce89%11(Основной) Маска подсети . . . . . . . . . . : 255.255.255.0 Основной шлюз. . . . . . . . . : 192.168.1.1 IAID DHCPv6 . . . . . . . . . . . : 188768646 DUID клиента DHCPv6 . . . . . . . : 00-01-00-01-14-3F-9F-AD-40-61-86-03-A5-99 NetBios через TCP/IP. . . . . . . . : Включен Состояние среды. . . . . . . . : Среда передачи недоступна. Описание. . . . . . . . . . . . . : Адаптер Microsoft ISATAP Физический адрес. . . . . . . . . : 00-00-00-00-00-00-00-E0 DHCP включен. . . . . . . . . . . : Нет Автонастройка включена. . . . . . : Да Туннельный адаптер Teredo Tunneling Pseudo-Interface: Описание. . . . . . . . . . . . . : Teredo Tunneling Pseudo-Interface Физический адрес. . . . . . . . . : 00-00-00-00-00-00-00-E0 DHCP включен. . . . . . . . . . . : Нет Автонастройка включена. . . . . . : Да Локальный IPv6-адрес канала . . . : fe80::20cd:a54f:4d44:1956%14(Основной) NetBios через TCP/IP. . . . . . . . : Отключен Туннельный адаптер 6TO4 Adapter: Состояние среды. . . . . . . . : Среда передачи недоступна. Описание. . . . . . . . . . . . . : Адаптер Microsoft 6to4 Физический адрес. . . . . . . . . : 00-00-00-00-00-00-00-E0 DHCP включен. . . . . . . . . . . : Нет Автонастройка включена. . . . . . : Да Туннельный адаптер Подключение по локальной сети* 4: Состояние среды. . . . . . . . : Среда передачи недоступна. Описание. . . . . . . . . . . . . : Адаптер Microsoft 6to4 #2 Физический адрес. . . . . . . . . : 00-00-00-00-00-00-00-E0 DHCP включен. . . . . . . . . . . : Нет Автонастройка включена. . . . . . : Да Туннельный адаптер Reusable Microsoft 6To4 Adapter: Состояние среды. . . . . . . . : Среда передачи недоступна. Описание. . . . . . . . . . . . . : Адаптер Microsoft 6to4 #3 Физический адрес. . . . . . . . . : 00-00-00-00-00-00-00-E0 DHCP включен. . . . . . . . . . . : Нет Автонастройка включена. . . . . . : Да Где что не так ? Уже грешу на модем. ну DHCP-клиент не только адреса получает на самом то деле. с модемом проще — перезагружаете модем и смотрите Просто не хотелось бы зря покупать новый модем,если проблема не в аппаратной части. Проблема из-за компьютера с W7,на втором с ХР — сессия не падала всю ночь.Стоило включить компьютер с W7 — 5минут,падение РРРоЕ. В "бридже" W7 работает нормально,без дисконнектов. В вашей теме отсутствует активность в течение последних 5 дней. При отсутствии каких-либо действий в течение 2 последующих дней, тема будет переведена в разряд обсуждений. Вы можете возобновить дискуссию, просто оставив сообщение в данной теме. Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий Модем Zyxel P660RT3, режим роутер. DNS прописаны в ручную и продублированны в настройках модема. Windows 7 (суду по гуглу эта проблема возникает только на W7). Время от времени пропадает интернет, OS этого даже не замечает, но пинги не проходят и в журнале появляется такое событие : Проверил на ХР. 4 часа работы, ни дисконнектов, ни ошибок в логах. Настройки такие же, как в Windows 7. Сетевую карту менял, тоже самое. Во время разрывов, тот же 8.8.8.8 не пингуется. Значит не просто DNS отваливается, а весь инет. Ощущение, как будто винда забивает модем и инет отваливается. На ХР, повторюсь, всё отлично проработало сутки (и дальше бы работало, думаю). |
