Пару
дней назад компьютеры организации, где я работаю, поразила некая фигня
(возможно, вирус), в результате которой компьютеры видят сеть, но в Интернет
не входят, т.к. не назначаются IP-адреса. Один из компьютеров подключен
к сети кабелем через роутер, а второй (ноутбук) - через Wi-Fi. Симптомы
совершенно одинаковые. Здесь я размещаю найденную мной в интернете статью
о том, как побороть эту проблему. Может, кому-то это сэкономит кучу времени.
Я убил на это 2 дня...
Итак, ПОДРОБНАЯ инструкция восстановление протокола tcp/ip
Восстановление стека TCP/IP в Windows XP
Возможно, вы сталкивались с вирусами/троянами, после лечения которых перестает нормально работать сеть («компьютер не выходит в интернет»). Как человек, угробивший кучу времени на борьбу с этим замечательным явлением на нескольких компьютерах, считаю нужным записать рецепт.
Как может проявляться проблема:
Команда ipconfig выдает ошибку.
Не работает получение адреса по dhcp (команда ipconfig /renew).
«Странные знаки» вместо IP-адреса в выводе команды ping.
Касперский при запуске выдает ошибки типа «Сбой при запуске монитора HTTP-трафика».
ActiveSync при запуске выдает ошибку типа «TCP/IP network transport is not installed».
В диспетчере устройств при включенном «Показать скрытые устройства» в разделе «Драйверы устройств не Plug and Play» драйвер протокола TCP/IP не виден или показан как отключенный и отображается сообщение об ошибке.
Могут, естественно, быть и другие симптомы.
Как можно бороться:
Начинаю я со сканирования всех жестких дисков с аварийного диска Касперского
со свежими базами. Править недолеченную винду — удовольствия мало, да
и смысла может не быть.
(...а я использую "Аваст!" + бесплатную утилиту Dr.Web
CureIt! - А.К.)
Если у каких-то сетевых соединений IP-адреса назначены вручную, выписываем
их или делаем скриншоты. На следующем шаге эти настройки скорее всего
слетят.
Даем команду netsh int ip reset, перезагружаемся.
Помогло? Замечательно. Нет? Едем дальше.
Даем команду netsh winsock reset, перезагружаемся.
Это может не работать на Windows до SP2. После этого действия может
слететь интеграция в стек TCP/IP антивирусов, фаерволлов, клиентов для
проксей. Правится или повторной установкой нужных галок в настройках
этих программ, или их переустановкой.
Простые методы закончились :) Возможно, поврежден или остутствует
файл tcpip.sys. Восстановить его можно командой expand X:\i386\tcpip.sy_
c:\windows\system32\tcpip.sys, где X: — буква
диска с дистрибутивом. После восстановления перезагружаемся.
Возможно, дело в каких-то еще системных файлах, потертых или измененных.
Запустить проверку с восстановлением из дистрибутива по необходимости
можно командой sfc /scannow. Мне не помогло, работало долго, но ошибок
никаких не нашло.
Видел рекомендацию воспользоваться софтинкой http://www.snapfiles.com/get/winsockxpfix.html
— мне не помогло, но «десять баксов-то не лишние» — вдруг кому поможет.
Софтинка небольшая, около мегабайта весит.
Можно попробовать заново установить протокол TCP/IP. В свойствах подключения
к локальной сети на вкладке Общие щелкаем Установить -> Протокол
-> Добавить. В окне Выбор сетевых протоколов щелкаем Установить с
диска, вводим путь C:\windows\inf, нажимаем ОК. Выделяем
Протокол Интернета (TCP/IP), нажимаем ОК. Проверяем настройки IP, перезагружаемся.
Можно попробовать в диспетчере устройств удалить и установить заново
сетевую карту. Я не пробовал.
Если ничего из вышеперечисленного не восстановило работоспособность,
осталась еще одна процедура, помогающая избежать переустановки Windows.
Кстати, переустановка «поверх», с сохранением настроек, программ и документов,
может не устранить проблему. Пробовал, сталкивался.
Открываем в блокноте файл c:\windows\inf\nettcpip.inf.
Находим секцию [MS_TCPIP.PrimaryInstall]..
В записи Characteristics = 0xA0 замеяем 0xA0 на 0×80.
Сохраняем, закрываем.
Открываем Сетевые подключения, там открываем свойства Подключения к
локальной сети.
На вкладке Общие щелкаем Установить -> Протокол -> Добавить.
В окне Выбор сетевых протоколов щелкаем Установить с диска.
Вводим путь C:\windows\inf\nettcpip.inf, нажимаем ОК.
Выделяем Протокол Интернета (TCP/IP), нажимаем ОК. Теперь в свойстве
подключения стало возможно снести TCP/IP.
Выделяем Протокол Интернета (TCP/IP), нажимаем кнопку Удалить, затем
ОК.
Запускаем regedit, удаляем ветки реестра
HKLM\System\CurrentControlSet\Services\Winsock
и
HKLM\System\CurrentControlSet\Services\Winsock2.
Перезагружаемся.
В файле c:\windows\inf\nettcpip.inf меняем обратно
0×80 на 0xA0, сохраняем, закрываем.
Открываем Сетевые подключения, там открываем свойства Подключения к локальной
сети.
На вкладке Общие щелкаем Установить -> Протокол -> Добавить.
Выделяем Протокол Интернета (TCP/IP), нажимаем ОК.
При необходимости восстанавливаем настройки адресов IP, перезагружаемся.
TCP/IP работает.
Предпоследний пункт может не сработать, выдав «расширенную ошибку».
Возможно, если не менять обратно файл nettcpip.inf, этой
ошибки не возникнет. Дело в том, что системная база безопасности почему-то
оказывается в неправильном состоянии. Как быть в этом случае? Для проверки
сначала запускаем команду:
Если в выводе между строчками Checking database integrity и Integrity check successful нет никаких сообщений, что что-то не так, значит с базой все в порядке. У меня было сообщение типа This operation may find that this database is corrupt.
Пробуем восстановление базы (у меня не сработало):
После этого запуск с ключом /g должен показать, что база в порядке, и TCP/IP установится. Эти манипуляции с базой безопасности могут что-то такое сделать с групповыми политиками, так что если вы ими пользуетесь, проверьте, все ли там в порядке.
Надеюсь, все написанное здесь вам не пригодится, а если все-таки пригодится,
то сэкономит немало времени и нервов.
P.S. Справедливости ради, отмечу, что на одном из компьютеров
мне эта схема не помогла, пришлось восстанавливать Windows XP (через "R")
[ WorkFromHome.com.ua ]