Исправляем ошибки протокола TCP/IP без переустановки Windows
Сегодня и весь октябрь мой блог спонсирует Форум вебмастеров, где навалом умных мыслей и злых кроликов.
На днях помогал одному хорошему человеку избавиться от троянов на компьютере. Страдалец обратился с жалобой на то, что машина самопроизвольно перегружается раз в несколько минут, а при загрузке сообщает, что система восстановлена после критической ошибки. В общем, работать никак невозможно, а проверить машину антивирусом не удается, поскольку система перегружается, прежде чем сканер успевает что-то найти.
Долго ли, коротко ли, но заразу я на компьютере вывел, причем без всякого антивируса. Кому будет интересно, как это делается - пишите в комментарии, я поделюсь. Нет, будем честными, сканер все-таки использовался, но лишь на последнем этапе - чтобы найти файлы, содержащие тела вирусов и очистить их от триппера, а вот предварительный этап, делался почти вручную.
И вот, когда финальная проверка показала, что машина чиста, я вдруг обнаружил, что с нее невозможно выйти в интернет. Причем проблема проявляется как-то странно: команда 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 за свою практику, и отказов не случалось. Если вы столкнулись с проблемой, похожей на ту, что описана выше, попробуйте данный рецепт прежде, чем переустанавливать ОС. Возможно, вы сэкономите кучу времени. Удачи!
-=-=-=-=-=-
Напоминаю, что вы по-прежнему можете стать спонсором моего блога за символические деньги. Спешите, пока еще есть места!


Куль
но проще было запустить LSPFix.exe. Это и вправду изза вируса, трояны оченьлюбят рушить LSP/Winsocks.
Описание(место где скачать)
Всегда держу на Restore Disk
Да, этот выход более простой. Действительно LSPFix имеет смысл держать под рукой, чтобы не колдовать вручную с реестром и .inf-файлами. Однако, если вдруг утилитки по каким-то причинам не окажется, думаю полезно знать, как сделать все “при помощи палки и веревки”
P.S. Если честно, про LSPFix я просто не знал
За время плотного время общения с Linux привык с тем, что почти все можно сделать, модифицируя конфиги, поэтому и Windows иногда также “чиню”…
Ну да. А то, что нельзя сделать модифицируя конфиги, можно сделать слегка подправив код ядра xD - ага, FreeBSD тоже дружелюбная система
(но тока для тех кто продался чертям или демонам)
Не, дружище, это уже полный хардкор :-))))
Скажем так, предложенный тобой LSPFix - это винтовка, ковыряние в конфигах - это рукопашный бой. И то, и другое нужно для того, чтобы победить и при этом остаться в живых. Одно другого не заменяет, а успешно дополняет
А ковыряние в ядре - это уже МАГИЯ и чернокнижие :-)))) В принципе тоже работает, но мне эти умения, к сожалению, недоступны
Какие вы пацаны остроумные и грамотные… прямо жаба душит)) я тоже хочу быть крутым системным администратором!
Дык, что мешает-то
Это ж все освоить реально. Не за месяц, конечно, но реально. Главное - побольше практики и почаще документацию читать. И все у тебя будет
Удачи!
“Главное - побольше практики и почаще документацию читать.”
И запастись терепением;-)
Хм…
Может быть кто сможет заодно подсказать по смежной проблеме: какой командой обнуляется (возвращается в исходное состояние) стек TCP/IP в винде?
Как-то когда-то пробовал… Но хоть убей, не могу вспомнить…
Aganor,
Если я правильно понял вопрос, речь идет о команде netsh. Вот здесь можно подробности посмотреть:
Павел! Мне интересно, как вы решили проблему с перезагрузкой! Поделитесь, пожалуйста, опытом.
Уважаемый Павел! После удаления двух строк реестра
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Winsock
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2 ( может я что то не правильно понял, однака это то, что отражается у меня в InternetExplorer)
в свой пользователь я больше не попал! Пришлось откатываться. Что не так?
2 pogiv:
Не очень понял вопроса про проблему перезагрузки
Пожалуйста, сформулируйте вопрос по-другому.
Что касается проблемы с попаданием в свой профиль, то все зависит от того, пытаетесь ли вы загрузить локальный или доменный профиль. В доменный профиль пускать не должно, а вот с локальным профилем все должно быть гладко.
Если я правильно понял, вам пришлось загрузиться в безопасном режиме, чтобы откатиться. Смею предположить, что если бы вы продолжили процедуру удаления и восстановления протокола из безопасного режима, то вам удалось бы довести ее до конца, и после очередной перезагрузки вы бы увидели свой профиль.
Впрочем, это только предположение, потому что с такой ситуацией, как у вас, я не сталкивался. Либо я не правильно понял ситуацию с ваших слов.
Уважаемый Павел!
Сделал все как Вы описали, но:
1. При установке протокола из windows/inf
на выбор появилось 2 протокола TCPIP:
с цифровой подписью и без нее.
2. При установке методом перебора сначала одного,
потом второго и последующей перезагрузки в каждом из случаев, кнопка “удалить” активной не становилась.
3. Не все виндовсы одинаково полезны. Возможно данный способ подходит только к определенной версии windows.
Вердикт: за узкоспециализированную статью без указания специализации оценка полезности 2.
За то что в итоге имеем перекореженый реестр и так и не заработавший протокол еще -1.
Николай, простите великодушно, но я действительно не сталкивался с проблемами при реализации описанного способа. Ни в коем случае НЕ намекаю на “кривые руки”. Действительно не все виндовсы одинаково полезны, и иногда следование казалось бы полезным рекомендациям приводит к неожиданным для всех эффектам.
Если у меня не было проблем, это, к сожалению, не значит, что способ на 100% работает на всех сборках ОС. Сами понимаете, проверить “рецепт” на всех возможных версиях, которые встречаются в природе возможности не было.
Огромное спасибо Павел очень помогли! Кстати выбирал протокол без подписи и все нормально работает (Win XP sp2). Оценка 5+!
Круто!
А то я уже стал сомневаться
СПАСИБО!!!
завтра попробую на разныж машинах, на оффисе сеть лягла на 50%.
круто, но я поднял протокол!! правда быстрым способом. утилитой xptcprep.exe С машиной бухов я не рисковал играться реестром.
Отлично, поздравляю!
В принципе, нет никакой необходимости делать все руками, если есть подходящая утилитка. А вот если единственная машина, выходящая в сеть - это “заболевшая” (как обычно бывает с домашними машинами), а программки нет, то полезно будет знать, как все делается ручками…
Круто) Все сработало) ПРямо радостно)) СПаибо большое ))
здравствуйте!
видимо словил виря и столкнулся с несколько похожей проблемой:
удалился протокол tcp ip и при открытии окна свойств подключения вылетает сообщение о том что уже открыто одно или более окон свойств сети и поэтому некоторые элементы управления отключены. кнопки “установить” “удалить” “свойства” не активны =\
винду сносить уж очень не охота
спасайте господа =)
Очень ГРАМОТНАЯ статья и полезные советы.
Я только так выскочил из тупика.
Спасибо Вам, Павел.
И что “ручками” очень много в Винде делать приходится, наверное любой администратор знает. Куда деваться-то? На любой чих не найдешь утилиту.
По поводу netsh - не сработало. Без Вашей статьи полный абзац.
Статья не помогла, как не менял *.inf файл кнопка “удалить” активной так и не стала, проги типа XP Tcp repair и т.п. не помогают, и ещё при использовании “ping” выводится сообщение “не удалось обратиться к дрйверу IP. код ошибки 2″. Может кто знает в чем замес?
Уважаемый Павел!
Статья спасла от краха и позора.
Восстановил сервер Win2k3 Enterprise SP1 сборка 3790 после атаки вируса.На нем стоит Консультант
обновляющийся череэ инет,переустановить было нереально.
LPSfix не помогла (показывает два пустых окошка)
Большое спасибо!!!