. Восстановление стека TCP/IP в Windows XP
Восстановление стека TCP/IP в Windows XP

Восстановление стека TCP/IP в Windows XP

Возможно, вы сталкивались с вирусами/троянами, после лечения которых перестает нормально работать сеть («компьютер не выходит в интернет»). Как человек, угробивший кучу времени на борьбу с этим замечательным явлением на нескольких компьютерах, считаю нужным записать рецепт.

  • Команда ipconfig выдает ошибку.
  • Не работает получение адреса по dhcp (команда ipconfig /renew ).
  • «Странные знаки» вместо IP-адреса в выводе команды ping .
  • Касперский при запуске выдает ошибки типа «Сбой при запуске монитора HTTP-трафика».
  • ActiveSync при запуске выдает ошибку типа «TCP/IP network transport is not installed».
  • В диспетчере устройств при включенном «Показать скрытые устройства» в разделе «Драйверы устройств не Plug and Play» драйвер протокола TCP/IP не виден или показан как отключенный и отображается сообщение об ошибке.
  • Могут, естественно, быть и другие симптомы.

Как можно бороться:Внимание! Текст писался давно и про Windows XP. Вполне допускаю, что в более современных версиях названия папок, файлов, кнопок в окнах и прочего отличаются. Более того, эти рецепты могут вообще не подойти. Используйте с умом, пожалуйста :)

  1. Начинаю я со сканирования всех жестких дисков с аварийного диска Касперского со свежими базами. Править недолеченную винду — удовольствия мало, да и смысла может не быть.
  2. Если у каких-то сетевых соединений IP-адреса назначены вручную, выписываем их или делаем скриншоты. На следующем шаге эти настройки скорее всего слетят.
  3. Даем команду netsh int ip reset , перезагружаемся. Помогло? Замечательно. Нет? Едем дальше.
  4. Даем команду netsh winsock reset , перезагружаемся. Это может не работать на Windows до SP2. После этого действия может слететь интеграция в стек TCP/IP антивирусов, фаерволлов, клиентов для проксей. Правится или повторной установкой нужных галок в настройках этих программ, или их переустановкой.
  5. Простые методы закончились :) Возможно, поврежден или остутствует файл tcpip.sys. Восстановить его можно командой expand X:\i386\tcpip.sy_ c:\windows\system32\tcpip.sys , где X: — буква диска с дистрибутивом. После восстановления перезагружаемся.
  6. Возможно, дело в каких-то еще системных файлах, потертых или измененных. Запустить проверку с восстановлением из дистрибутива по необходимости можно командой sfc /scannow . Мне не помогло, работало долго, но ошибок никаких не нашло.
  7. Видел рекомендацию воспользоваться софтинкой http://www.snapfiles.com/get/winsockxpfix.html — мне не помогло, но «десять баксов-то не лишние» — вдруг кому поможет. Софтинка небольшая, около мегабайта весит.
  8. Можно попробовать заново установить протокол TCP/IP. В свойствах подключения к локальной сети на вкладке Общие щелкаем Установить -> Протокол -> Добавить. В окне Выбор сетевых протоколов щелкаем Установить с диска, вводим путь C:\windows\inf , нажимаем ОК. Выделяем Протокол Интернета (TCP/IP), нажимаем ОК. Проверяем настройки IP, перезагружаемся.
  9. Можно попробовать в диспетчере устройств удалить и установить заново сетевую карту. Я не пробовал.

Полная переустановка TCP/IP aka закат солнца вручную:Если ничего из вышеперечисленного не восстановило работоспособность, осталась еще одна процедура, помогающая избежать переустановки Windows. Кстати, переустановка «поверх», с сохранением настроек, программ и документов, может не устранить проблему. Пробовал, сталкивался.

Итак, отращиваем бороду, покупаем бубен, надеваем толстые очки и засучиваем рукава.

Внимание! Текст писался давно и про Windows XP. Вполне допускаю, что в более современных версиях названия папок, файлов, кнопок в окнах и прочего отличаются. Более того, эти рецепты могут вообще не подойти. Используйте с умом, пожалуйста :)

  1. Открываем в блокноте файл c:\windows\inf\nettcpip.inf .
  2. Находим секцию [MS_TCPIP.PrimaryInstall] ..
  3. В записи Characteristics = 0xA0 замеяем 0xA0 на 0x80 .
  4. Сохраняем, закрываем.
  5. Открываем Сетевые подключения, там открываем свойства Подключения к локальной сети.
  6. На вкладке Общие щелкаем Установить -> Протокол -> Добавить.
  7. В окне Выбор сетевых протоколов щелкаем Установить с диска.
  8. Вводим путь C:\windows\inf , нажимаем ОК.
  9. Выделяем Протокол Интернета (TCP/IP), нажимаем ОК. Теперь в свойстве подключения стало возможно снести TCP/IP.
  10. Выделяем Протокол Интернета (TCP/IP), нажимаем кнопку Удалить, затем ОК.
  11. Запускаем regedit, удаляем ветки реестра HKLM\System\CurrentControlSet\Services\W insock и HKLM\System\CurrentControlSet\Services\W insock2 .
  12. Перезагружаемся.
  13. В файле c:\windows\inf\nettcpip.inf меняем обратно 0x80 на 0xA0 , сохраняем, закрываем.
  14. Открываем Сетевые подключения, там открываем свойства Подключения к локальной сети.
  15. На вкладке Общие щелкаем Установить -> Протокол -> Добавить.
  16. Выделяем Протокол Интернета (TCP/IP), нажимаем ОК.
  17. При необходимости восстанавливаем настройки адресов IP, перезагружаемся. TCP/IP работает.

Предпоследний пункт может не сработать, выдав «расширенную ошибку». Возможно, если не менять обратно файл nettcpip.inf , этой ошибки не возникнет. Дело в том, что системная база безопасности почему-то оказывается в неправильном состоянии. Как быть в этом случае? Для проверки сначала запускаем команду:

esentutl /g c:\windows\security\Database\secedit.sdb

Если в выводе между строчками Checking database integrity и Integrity check successful нет никаких сообщений, что что-то не так, значит с базой все в порядке. У меня было сообщение типа This operation may find that this database is corrupt.

Пробуем восстановление базы (у меня не сработало):

esentutl /r c:\windows\security\Database\secedit.sdb

Делаем ремонт базы:

esentutl /p c:\windows\security\Database\secedit.sdb

После этого запуск с ключом /g должен показать, что база в порядке, и TCP/IP установится. Эти манипуляции с базой безопасности могут что-то такое сделать с групповыми политиками, так что если вы ими пользуетесь, проверьте, все ли там в порядке.

Надеюсь, все написанное здесь вам не пригодится, а если все-таки пригодится, то сэкономит немало времени и нервов.

📎📎📎📎📎📎📎📎📎📎