Исправляем ошибки протокола TCP/IP без переустановки Windows

Октябрь 21, 2007
от Павел Медников

Сегодня и весь октябрь мой блог спонсирует Форум вебмастеров, где навалом умных мыслей и злых кроликов.

На днях помогал одному хорошему человеку избавиться от троянов на компьютере. Страдалец обратился с жалобой на то, что машина самопроизвольно перегружается раз в несколько минут, а при загрузке сообщает, что система восстановлена после критической ошибки. В общем, работать никак невозможно, а проверить машину антивирусом не удается, поскольку система перегружается, прежде чем сканер успевает что-то найти.

Долго ли, коротко ли, но заразу я на компьютере вывел, причем без всякого антивируса. Кому будет интересно, как это делается - пишите в комментарии, я поделюсь. Нет, будем честными, сканер все-таки использовался, но лишь на последнем этапе - чтобы найти файлы, содержащие тела вирусов и очистить их от триппера, а вот предварительный этап, делался почти вручную.

И вот, когда финальная проверка показала, что машина чиста, я вдруг обнаружил, что с нее невозможно выйти в интернет. Причем проблема проявляется как-то странно: команда ping на конкретный ip-адрес выполняется успешно, но ни одна из служб, работающих поверх TCP/IP, не функционирует: ни telnet, ни nslookup, ни tracert - ничего. Мало того, ip-адрес по DHCP тоже не получается, хотя вручную его установить реально.

Делаем вывод: поддержка протокола TCP/IP на машине работает некорректно. Вероятно, причина в вирусном коде в одном из системным файлов, который был некорректно вычищен антивирусом. А может файл просто был поврежден при очередной некорректной перезагрузке… Так или иначе, требовалось переустановить компоненты Windows, отвечающие за работу TCP/IP. Но вот беда: Windows не дает удалить этот протокол и установить его заново. Кнопка “Удалить” для протокола TCP/IP попросту не активна. Неужели переустанавливать Windows?

Нет, это не наш метод! Мы пойдем другим путем и продемонстрируем превосходство человека над машиной. А заодно и восстановим работу TCP/IP, не прибегая к реинсталляции ОС. Вот как это делается:


Открываем редактор реестра REGEDIT (Кнопка “Пуск” - пункт “Выполнить” - пишем regedit и нажимаем <ENTER>) и безжалостно удаляем два ключа реестра:

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Winsock
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2

Выходим из REGEDIT и ОБЯЗАТЕЛЬНО (!) перезагружаемся.

После перезагрузки находим папку c:\windows\inf (а если точнее, то %winroot%\inf - ведь Windows может быть установлена в другом месте) и находим в ней файл nettcpip.inf. Обязательно сделайте его резервную копию, а потом отредактируйте с помощь Блоктнота:

Строки

[MS_TCPIP.PrimaryInstall]
; TCPIP has properties to display
Characteristics = 0xA0 ; NCF_HAS_UI | NCF_NOT_USER_REMOVABLE

замените на

[MS_TCPIP.PrimaryInstall]
; TCPIP has properties to display
Characteristics = 0×80 ; NCF_HAS_UI

Сохраните файл. Откройте настройки сетевого адаптера, щелкнув по нему правой клавишей и выбрав “Свойства”. Нажмите “Установить”, выберите из списка “Протокол” и нажмите “Добавить”. Далее нажмите кнопку “Установка с диска” и введите в строке пути c:\windows\inf (или %winroot%\inf). В появившемся списке выберите Протокол TCP/IP и завершите установку.

Перезагрузите компьютер.

После перезагрузки снова идите в свойства сетевого адаптера, и вы обнаружите, что кнопка “Удалить” для протокола TCP/IP теперь стала доступна. Удалите протокол TCP/IP и снова перезагрузите машину.

После перезагрузки установите протокол TCP/IP с нуля. Вот и все.

Эта операция занимает 5-10 минут, после чего работоспособность TCP/IP восстанавливается. Вам даже не потребуется компакт-диск с дистрибутивом. Мне доводилось проделывать это раза 3 или 4 за свою практику, и отказов не случалось. Если вы столкнулись с проблемой, похожей на ту, что описана выше, попробуйте данный рецепт прежде, чем переустанавливать ОС. Возможно, вы сэкономите кучу времени. Удачи!

-=-=-=-=-=-

Напоминаю, что вы по-прежнему можете стать спонсором моего блога за  символические деньги. Спешите, пока еще есть места!


26 Ответовна «Исправляем ошибки протокола TCP/IP без переустановки Windows »

  1. kentover на Октябрь 22, 2007 из 00:58

    Куль :)
    но проще было запустить LSPFix.exe. Это и вправду изза вируса, трояны оченьлюбят рушить LSP/Winsocks.
    Описание(место где скачать)
    http://cexx.org/lspfix.htm

    Всегда держу на Restore Disk

  2. Павел Медников на Октябрь 22, 2007 из 01:36

    Да, этот выход более простой. Действительно LSPFix имеет смысл держать под рукой, чтобы не колдовать вручную с реестром и .inf-файлами. Однако, если вдруг утилитки по каким-то причинам не окажется, думаю полезно знать, как сделать все “при помощи палки и веревки” :-)

    P.S. Если честно, про LSPFix я просто не знал :-) За время плотного время общения с Linux привык с тем, что почти все можно сделать, модифицируя конфиги, поэтому и Windows иногда также “чиню”…

  3. kentover на Октябрь 22, 2007 из 16:51

    Ну да. А то, что нельзя сделать модифицируя конфиги, можно сделать слегка подправив код ядра xD - ага, FreeBSD тоже дружелюбная система :) (но тока для тех кто продался чертям или демонам)

  4. Павел Медников на Октябрь 22, 2007 из 17:31

    Не, дружище, это уже полный хардкор :-))))
    Скажем так, предложенный тобой LSPFix - это винтовка, ковыряние в конфигах - это рукопашный бой. И то, и другое нужно для того, чтобы победить и при этом остаться в живых. Одно другого не заменяет, а успешно дополняет :-)
    А ковыряние в ядре - это уже МАГИЯ и чернокнижие :-)))) В принципе тоже работает, но мне эти умения, к сожалению, недоступны ;-)

  5. Диман на Октябрь 25, 2007 из 19:06

    Какие вы пацаны остроумные и грамотные… прямо жаба душит)) я тоже хочу быть крутым системным администратором!

  6. Павел Медников на Октябрь 25, 2007 из 19:08

    Дык, что мешает-то :-) Это ж все освоить реально. Не за месяц, конечно, но реально. Главное - побольше практики и почаще документацию читать. И все у тебя будет :-) Удачи!

  7. Александр на Октябрь 31, 2007 из 03:21

    “Главное - побольше практики и почаще документацию читать.”
    И запастись терепением;-)

  8. Aganor на Ноябрь 21, 2007 из 19:01

    Хм…
    Может быть кто сможет заодно подсказать по смежной проблеме: какой командой обнуляется (возвращается в исходное состояние) стек TCP/IP в винде?

    Как-то когда-то пробовал… Но хоть убей, не могу вспомнить…

  9. Павел Медников на Ноябрь 22, 2007 из 10:33

    Aganor,

    Если я правильно понял вопрос, речь идет о команде netsh. Вот здесь можно подробности посмотреть: http://www.osp.ru/win2000/2004/02/176751/

  10. pogiv на Март 1, 2008 из 17:19

    Павел! Мне интересно, как вы решили проблему с перезагрузкой! Поделитесь, пожалуйста, опытом.

  11. pogiv на Март 1, 2008 из 17:48

    Уважаемый Павел! После удаления двух строк реестра
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Winsock
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2 ( может я что то не правильно понял, однака это то, что отражается у меня в InternetExplorer)
    в свой пользователь я больше не попал! Пришлось откатываться. Что не так?

  12. Павел Медников на Март 1, 2008 из 23:37

    2 pogiv:

    Не очень понял вопроса про проблему перезагрузки :-( Пожалуйста, сформулируйте вопрос по-другому.

    Что касается проблемы с попаданием в свой профиль, то все зависит от того, пытаетесь ли вы загрузить локальный или доменный профиль. В доменный профиль пускать не должно, а вот с локальным профилем все должно быть гладко.
    Если я правильно понял, вам пришлось загрузиться в безопасном режиме, чтобы откатиться. Смею предположить, что если бы вы продолжили процедуру удаления и восстановления протокола из безопасного режима, то вам удалось бы довести ее до конца, и после очередной перезагрузки вы бы увидели свой профиль.
    Впрочем, это только предположение, потому что с такой ситуацией, как у вас, я не сталкивался. Либо я не правильно понял ситуацию с ваших слов.

  13. Николай на Апрель 8, 2008 из 15:28

    Уважаемый Павел!
    Сделал все как Вы описали, но:
    1. При установке протокола из windows/inf
    на выбор появилось 2 протокола TCPIP:
    с цифровой подписью и без нее.
    2. При установке методом перебора сначала одного,
    потом второго и последующей перезагрузки в каждом из случаев, кнопка “удалить” активной не становилась.
    3. Не все виндовсы одинаково полезны. Возможно данный способ подходит только к определенной версии windows.
    Вердикт: за узкоспециализированную статью без указания специализации оценка полезности 2.
    За то что в итоге имеем перекореженый реестр и так и не заработавший протокол еще -1.

  14. Павел Медников на Апрель 9, 2008 из 20:58

    Николай, простите великодушно, но я действительно не сталкивался с проблемами при реализации описанного способа. Ни в коем случае НЕ намекаю на “кривые руки”. Действительно не все виндовсы одинаково полезны, и иногда следование казалось бы полезным рекомендациям приводит к неожиданным для всех эффектам.
    Если у меня не было проблем, это, к сожалению, не значит, что способ на 100% работает на всех сборках ОС. Сами понимаете, проверить “рецепт” на всех возможных версиях, которые встречаются в природе возможности не было.

  15. Kerby Teflon на Июнь 11, 2008 из 14:45

    Огромное спасибо Павел очень помогли! Кстати выбирал протокол без подписи и все нормально работает (Win XP sp2). Оценка 5+!

  16. Павел Медников на Июнь 11, 2008 из 20:42

    Круто!
    А то я уже стал сомневаться :-)

  17. Avidal на Июнь 12, 2008 из 00:24

    СПАСИБО!!!

  18. Flyer на Июнь 25, 2008 из 23:36

    завтра попробую на разныж машинах, на оффисе сеть лягла на 50%.

  19. Flyer на Июнь 28, 2008 из 23:43

    круто, но я поднял протокол!! правда быстрым способом. утилитой xptcprep.exe С машиной бухов я не рисковал играться реестром.

  20. Павел Медников на Июнь 29, 2008 из 00:04

    Отлично, поздравляю!
    В принципе, нет никакой необходимости делать все руками, если есть подходящая утилитка. А вот если единственная машина, выходящая в сеть - это “заболевшая” (как обычно бывает с домашними машинами), а программки нет, то полезно будет знать, как все делается ручками…

  21. Виталий на Июнь 30, 2008 из 04:15

    Круто) Все сработало) ПРямо радостно)) СПаибо большое ))

  22. Nick на Август 8, 2008 из 18:45

    здравствуйте!

    видимо словил виря и столкнулся с несколько похожей проблемой:
    удалился протокол tcp ip и при открытии окна свойств подключения вылетает сообщение о том что уже открыто одно или более окон свойств сети и поэтому некоторые элементы управления отключены. кнопки “установить” “удалить” “свойства” не активны =\
    винду сносить уж очень не охота

    спасайте господа =)

  23. ALEX на Август 14, 2008 из 09:09

    Очень ГРАМОТНАЯ статья и полезные советы.
    Я только так выскочил из тупика.
    Спасибо Вам, Павел.
    И что “ручками” очень много в Винде делать приходится, наверное любой администратор знает. Куда деваться-то? На любой чих не найдешь утилиту.

  24. ALEX на Август 14, 2008 из 09:11

    По поводу netsh - не сработало. Без Вашей статьи полный абзац.

  25. andrey на Август 19, 2008 из 09:21

    Статья не помогла, как не менял *.inf файл кнопка “удалить” активной так и не стала, проги типа XP Tcp repair и т.п. не помогают, и ещё при использовании “ping” выводится сообщение “не удалось обратиться к дрйверу IP. код ошибки 2″. Может кто знает в чем замес?

  26. Victor на Октябрь 8, 2008 из 10:16

    Уважаемый Павел!
    Статья спасла от краха и позора.
    Восстановил сервер Win2k3 Enterprise SP1 сборка 3790 после атаки вируса.На нем стоит Консультант
    обновляющийся череэ инет,переустановить было нереально.
    LPSfix не помогла (показывает два пустых окошка)
    Большое спасибо!!!

Написать ответ

Вы должны войти в систему, чтобы оставить комментарий.

lvovtoday.ru psy-rovno.ru

 

Сентябрь 2010
Пн Вт Ср Чт Пт Сб Вс
« Июнь    
 12345
6789101112
13141516171819
20212223242526
27282930