процесс system висит на 80 порту PID 4
Windows 7 – процесс system висит на 80 порту PID 4? Замучались искать решение.
Если ответ положительный, то я вас прекрасно понимаю. На одной машинке с windows 7 решил поставить веб-сервер…убил пол дня. Как раз таки из-за падений apache. Ругался он довольно неожиданно для меня. На то, что порт 80 уже занят.
Что ж. Запускаем командную строку и пишем
netstat -o -n -a | findstr 0.0:80
На что получаем:
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
Последнее число 4 это PID процесса, т.е. уникальный идентификатор процесса — то, что нужно. Запускаем диспетчер задач. Выбираем вкладку процессы. Далее в меню вид нас интересует пункт «выбрать столбцы» и отмечаем галочкой пункт «ИД процесса (PID)». Находим процесс, у которого PID = 4 это оказывается процесс system.
Описание у процесса system “NT Kernel & system”. По началу даже возникла мысля что это вирус. Но во превых это встретилось на всех машинах с windows 7 или window server 2008 R2. Процесс System имел PID 4 и везде занимал порт 80.
Прибить его нельзя, да и незачем. Путем длительного обращения к гуглу и изучению тонны материалов. Большинство пишет про то что я и так знал… что порт 80 занял skype, но к сожалению это не наш случай.
На одном из ресурсов было установлено что это компонент нашей любимой windows запускается через обертку system. А именно “http.sys”. Эта бяка оказалась живучей…в службах найти не удалось. Несколько советов отключения через реестр тоже не помагало, гадский драйвер весел. Хотя мне и удалось отключить его автоматический запуск. При старте windows 7 порт 80 был свободен, но как только была попытка запустить Apache тут же поднимался драйвер http.sys и занимал порт 80. Это поддвердил лично просмотрев утилитой «ProcessExplorer» все потоки (Threads) процесса system там нам показали что http.sys по прежнему запущен…
Освободить порт 80 занятый system в windows 7
удалось следующим путем.
- Win+R вводим “regedit” (без ковычек).
- Ищем ветку «HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesHTTP»
- Меняем значение ключа “start” с 3 на 4…до этого встречал советы ставить 0. Так вот мне ноль не помог.
- Перезапускаем компьютер.
- Радуемся тому, что так быстро нашли нужную информацию.
Вопросы и пожелания оставляйте в комментариях, может еще что-то не получается помимо злого процесса system на порту 80.
И помните, на нашем сайте можно найти много всего
UPDATE Очень полезный комментарий пользователя «Old Daemon» вынесен в статью:
Old Daemon:
Как поменять порт
При создании нового подключения может оказаться, что используемый порт уже занят другим приложением. Чтобы исключить конфликты, следует поменять порт (цифровой код) на другое значение.
Вам понадобится
- Программа Regedt32, встроенный калькулятор Windows.
Инструкция
Запускаем программу Regedt32. Для этого активируйте кнопку «Пуск», затем «Выполнить» и введите команду Regedt32.
В открывшемся редакторе реестра находим папку HKEY_LOCAL_MACHINE, затем папку SYSTEM, выбираем подраздел CurrentControlSet, в нем активируем Control, затем папку Terminal Server. Выбираем требуемое подключение в папке WinStations в подпапке RDP-Tcp. Только здесь можно поменять порт.
С правой стороны меню ищем PortNumber. Кликаем мышкой на нем и выбираем «Изменить». В открывшемся окне «Изменение параметра DWORD» видим установленное значение d3d и шестнадцатеричную систему исчисления данного кода.
Запускаем калькулятор. Для этого активируем кнопку «Пуск», затем выбираем папку «Стандартные», а в ней активируем «Калькулятор». В закладке «Вид» выбираем функцию «Инженерный». На экране появится развернутый калькулятор со множеством функций.
Устанавливаем переключатель (галочку) в положение Hex. Это шестнадцатеричный режим. Вводим значение порта, например 3389 и в окошке высвечивается D3D.
Рассчитываем значение для порта 3390. Для этого вводим с помощью калькулятора м мышки числа, путем нажатия клавиш на калькуляторе. В окне появляется значение D3E, соответствующее порту 3390.
Входим в редактор реестра, чтобы произвести замену порта, используя следующий путь: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp. Кликаем на значении PortNumber и выбираем «Изменить». В открывшемся окне устанавливаем новое значение — D3E и нажимаем ОК. Перезагружаем компьютер.
Видео по теме
Полезный совет
Следует соблюдать осторожность при переключении режимов исчисления для замены порта. Поскольку такие слова, как Hex, Dec, Oct и Bin не часто встречаются в повседневной жизни, пользователи могут не знать, за что эти переключатели отвечают в калькуляторе.
Источники:
- Описание способа изменения порта на различных операционных системах
Войти на сайт
или
Забыли пароль?
Еще не зарегистрированы?
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Обновлено 12.06.2018
Добрый день уважаемые читатели и гости блога, сегодня у нас с вами вот такая задача: изменить входящий порт службы RDP (терминального сервера) со стандартного 3389 на какой-то другой. Напоминаю, что RDP служба это функционал операционных систем Windows, благодаря которому вы можете по сети открыть сессию на нужный вам компьютер или сервер по протоколу RDP, и иметь возможность за ним работать, так как будто вы сидите за ним локально.
Что такое RDP протокол
Прежде чем, что то изменять, хорошо бы понимать, что это и как это работает, я вам об этом не перестаю повторять. RDP или Remote Desktop Protocol это протокол удалённого рабочего стола в операционных системах Microsoft Windows, хотя его происхождение идет от компании PictureTel (Polycom). Microsoft просто его купила. Используется для удаленной работы сотрудника или пользователя с удаленным сервером. Чаще всего такие сервера несут роль сервер терминалов, на котором выделены специальные лицензии, либо на пользователе, либо на устройства, CAL. Тут задумка была такой, есть очень мощный сервер, то почему бы не использовать его ресурсы совместно, например под приложение 1С. Особенно это становится актуальным с появлением тонких клиентов.
Сам сервер терминалов мир увидел, аж в 1998 году в операционной системе Windows NT 4.0 Terminal Server, я если честно тогда и не знал, что такое есть, да и в России мы в то время все играли в денди или сегу. Клиенты RDP соединения, на текущий момент есть во всех версиях Windows, Linux, MacOS, Android. Самая современная версия RDP протокола на текущий момент 8.1.
Порт rdp по умолчанию
Сразу напишу порт rdp по умолчанию 3389, я думаю все системные администраторы его знают.
Принцип работы протокола rdp
И так мы с вами поняли для чего придумали Remote Desktop Protocol, теперь логично, что нужно понять принципы его работы. Компания Майкрософт выделяет два режима протокола RDP:
- Remote administration mode > для администрирования, вы попадаете на удаленный сервер и настраиваете и администрируете его
- Terminal Server mode > для доступа к серверу приложений, Remote App или совместное использование его для работы.
Вообще если вы без сервера терминалов устанавливаете Windows Server 2008 R2 — 2016, то там по умолчанию у него будет две лицензии, и к нему одновременно смогут подключиться два пользователя, третьему придется для работы кого то выкидывать. В клиентских версиях Windows, лицензий всего одна, но и это можно обойти, я об этом рассказывал в статье сервер терминалов на windows 7. Так же Remote administration mode, можно кластеризировать и сбалансировать нагрузку, благодаря технологии NLB и сервера сервера подключений Session Directory Service. Он используется для индексации пользовательских сессий, благодаря именно этому серверу у пользователя получиться войти на удаленный рабочий стол терминальных серверов в распределенной среде. Так же обязательными компонентами идут сервер лицензирования.
RDP протокол работает по TCP соединению и является прикладным протоколом. Когда клиент устанавливает соединение с сервером, на транспортном уровне создается RDP сессия, где идет согласование методов шифрования и передачи данных. Когда все согласования определены и инициализация окончена, сервер терминалов, передает клиенту графический вывод и ожидает входные данные от клавиатуры и мыши.
Remote Desktop Protocol поддерживает несколько виртуальных каналов в рамках одного соединения, благодаря этому можно использовать дополнительный функционал
- Передать на сервер свой принтер или COM порт
- Перенаправить на сервер свои локальные диски
- Буфер обмена
- Аудио и видео
Этапы RDP соединения
- Установка соединения
- Согласование параметров шифрования
- Аутентификация серверов
- Согласование параметров RDP сессии
- Аутентификация клиента
- Данные RDP сессии
- Разрыв RDP сессии
Безопасность в RDP протоколе
Remote Desktop Protocol имеет два метода аутентификации Standard RDP Security и Enhanced RDP Security, ниже рассмотрим оба более подробно.
Standard RDP Security
RDP протокол при данном методе аутентификации, шифрует подключение средствами самого RDP протокола, которые есть в нем, вот таким методом:
- Когда ваша операционная система запускается, то идет генерация пары RSA ключиков
- Идет создание сертификата открытого ключа Proprietary Certificate
- После чего Proprietary Certificate подписывается RSA ключом созданным ранее
- Теперь RDP клиент подключившись к терминальному серверу получит Proprietary Certificate
- Клиент его смотрит и сверяет, далее получает открытый ключ сервера, который используется на этапе согласования параметров шифрования.
Если рассмотреть алгоритм с помощью которого все шифруется, то это потоковый шифр RC4. Ключи разной длины от 40 до 168 бит, все зависит от редакции операционной системы Windows, например в Windows 2008 Server – 168 бит. Как только сервер и клиент определились с длиной ключа, генерируются два новых различных ключа, для шифрования данных.
Если вы спросите про целостность данных, то тут она достигается за счет алгоритма MAC (Message Authentication Code) базируемого на SHA1 и MD5
Enhanced RDP Security
RDP протокол при данном методе аутентификации использует два внешних модуля безопасности:
- CredSSP
- TLS 1.0
TLS поддерживается с 6 версии RDP. Когда вы используете TLS, то сертификат шифрования можно создать средствами терминального сервера, самоподписный сертификат или выбрать из хранилища.
Когда вы задействуете CredSSP протокол, то это симбиоз технологий Kerberos, NTLM и TLS. При данном протоколе сама проверка, при которой проверяется разрешение на вход на терминальный сервер осуществляется заранее, а не после полноценного RDP подключения, и тем самым вы экономите ресурсы терминального сервера, плюс тут более надежное шифрование и можно делать однократный вход в систему (Single Sign On), благодаря NTLM и Kerberos. CredSSP идет только в ОС не ниже Vista и Windows Server 2008. Вот эта галка в свойствах системы
разрешить подключения только с компьютеров, на которых работает удаленный рабочий стол с проверкой подлинности на уровне сети.
Изменить порт rdp
Для того, чтобы изменить порт rdp, вам потребуется:
- Открываем редактор реестра (Пуск -> Выполнить -> regedit.exe)
- Переходим к следующему разделу:
HKEY_LOCAL_MACHINESystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp
Находим ключ PortNumber и меняем его значение на номер порта, который Вам нужен.
Выберите обязательно десятичное значение, я для примера поставлю порт 12345.
Как только вы это сделали, то перезапустите службу удаленных рабочих столов, через командную строку, вот такими командами:
Далее не забудьте в брандмауэре Windows после изменения порта RDP открыть его, для этого жмем WIN+R и в окне выполнить пишем firewall.cpl.
Далее переходим в пункт Дополнительные параметры
И создаем новое входящее правило для нового rdp порта. Напоминаю, что порт rdp по умолчанию 3389.
Выбираем, что правило будет для порта
Протокол оставляем TCP и указываем новый номер RDP порта.
Правило у нас будет разрешающее RDP соединение по не стандартному порту
При необходимости задаем нужные сетевые профили.
Ну и назовем правило, понятным для себя языком.
Для подключения с клиентских компьютеров Windows адрес пишите с указанием порта. Например, если порт Вы изменили на 12345, а адрес сервера (или просто компьютера, к которому подключаетесь): myserver, то подключение по MSTSC будет выглядеть так:
mstsc -v:myserver:12345
или через командную строку.
Как видите изменить порт rdp совсем не трудная задача, все тоже самое можно проделать средствами групповой политики.
С проблемой столкнулся, когда давно не запускавшийся денвер при старте апача заголосил, что 80 порт занят. Денвер перевесил на другой порт, но суть не в этом.
netstat -ano говорит «TCP 127.0.0.1:80 127.0.0.1:60976 ESTABLISHED 4».
60976 порт периодически меняется, а процесс с pid’ом 4 – system.exe.
Собственно, вопрос: зачем system.exe занимает 80 порт, и как это вылечить?
ЗЫ localhost:8080 совсе не радует
Upd: Простите за ошибку, не System.exe, а просто System.
-
Вопрос заданболее трёх лет назад
-
58679 просмотров
Пригласить эксперта
Нужно остановить (отключить) сервис:
Служба Web-публикаций
Обеспечивает соединения через сеть и управление ими с помощью диспетчера служб IIS
Освобождаются порты 80, 8080, и т.д.
Отключаем из автозапуска службы:
— Служба удаленного агента для Microsoft Web Deploy 2.0;
— Служба агента веб-развертывания.
Это компоненты IIS-сервера, устанавливаются, например, при использовании продуктов из Microsoft Web Platform.
Мне помогла остановка репортинг сервиса свежеустановленного MSSQL сервера. Тоже был в процессах как SYSTEM ID 4 и тупо листенил 80 порт.
>>зачем system.exe занимает 80 порт
Чтобы вирус мог получать команды из внешнего мира.
>>и как это вылечить
Вылечить вирус.
Возьми live.sysinternals.com/procexp.exe найди где лежит этот System.exe и прибей его
Иногда в Windows по умолчанию активирована какая то служба которая занимает порт 80 с именем System и Process ID=4 — её нужно отключить через реестр. Запускаете Regedit и идете по адресу HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesHTTP и меняете значение Start на 0
Думаю можно и в Службах (Win+R, services.msc) отключить запуск HTTP-Клиент, Веб-Сервер, или как оно там называется.
Хочу рассказать как я решил данную проблему. Ибо все изложенное выше мне не помогло.
У меня сборка winginx. Пропал в один день доступ на 80.
Открыл менеджер устройств. Выбрал пункт «показать скрытые устройства». Устройство http. И отключил его.
Все заработало.
Процесс system ни куда не делся.
Все что было предложено по реестру, делал. Но безрезультатно.
Была такая же проблема, как оказалось на 80м порту висел skype.
Скайп и тимвьюер, как я помню, могут занимать 80 порт. Убирается в конфигах…
РЕШЕНО!
Нужно всего лишь перекинуть http.sys c IPv4 на IPv6
Написал краткую инструкция velestor.com/q/port80
У меня Windows 10, помог только этот вариант, всем удачи!
Была такая же проблема с запуском Open Server, ошибка не запускается невозможно занять порт 80 поскольку он уже используется: Cлужбы Windows.
Решил отключением службы IIS.
Панель управления -> Программы -> Включение или выключение компонентов Windows:
Найти Службы IIS -> Службы Интернета -> Безопасность -> снять галочку с Фильтрация запросов
OK -> подождать применения параметров …и радоваться (у меня на Windows 10 LTSB x64 без перезагрузки порт освободился — оно и логично служба остановлена — порт освобожден).
-
Показать ещё
Загружается…
26 янв. 2023, в 10:12
6000 руб./за проект
10 февр. 2023, в 18:25
17000 руб./за проект
10 февр. 2023, в 17:46
40000 руб./за проект
Минуточку внимания
Удалённое администрирование Linux, как правило, осуществляется при помощи SSH (Secure Shell) — сетевого протокола прикладного уровня, позволяющего производить туннелирование TCP-соединений. Вышедший в 1995-м году SSH широко используется и в наши дни. С помощью этого протокола, помимо администрирования операционной системы с помощью командной оболочки, можно выполнять файловые операции и монтировать удалённые файловые системы.
SSH-сервер по умолчанию работает с использованием 22-го TCP-порта. Иногда бывают ситуации когда необходимо изменить этот порт. Например, для превентивной защиты от bruteforce-атак, направленных именно на 22-й порт, или для освобождения этого порта, занятого другим приложением. В этом случае можно изменить порт SSH на любой другой свободный TCP-порт.
В большинстве разновидностей Linux конфигурационный файл SSH-сервера располагается по пути /etc/ssh/sshd_config. Тем не менее, можно воспользоваться и поиском для того, чтобы узнать наверняка. Воспользуйтесь командой:
sudo find /etc/ -name "sshd_config"
В данном случае файл там, где и должен быть. Откройте в текстовом редакторе файл sshd_config:
sudo nano /etc/ssh/sshd_config
Найдите строку Port 22 и измените значение (в нашем примере на Port 222). Возможно в вашем конфигурационном файле эта строка будет закомментирована, то есть выглядит вот так — #Port 22.
В этом случае нужно убрать символ # и выполнить действия, описанные выше:
Сохраните файл. Далее следует перезапустить демон SSH. Выполните команду:
sudo systemctl restart sshd
Для того, чтобы проверить прошла ли удачно смена порта SSH сервера, выполните следующую команду:
sudo netstat -tupln | grep ssh
Будут показаны открытые порты SSH на вашем компьютере:
Строка tcp 0.0.0.0:222 LISTEN говорит о том, что 222-й порт, который назначенный для SSH-демона, успешно используется. В SSH-клиентах, подключаемых к вашему компьютеру, нужно будет изменить порт по умолчанию на назначенный SSH-серверу.
Если на вашем компьютере работает файрвол, не забудьте добавить в его исключения новый порт, назначенный SSH-серверу. Если вы изначально работаете удалённо по SSH-протоколу, сделать это нужно ещё до того, как вы перезапустите демон SSH на сервере, к которому подключены.
Если у вас в качестве файрвола установлен UFV, выполните команду:
sudo ufw allow 222/tcp
Для тех, кто использует iptables, необходимо разрешить новый порт с помощью команды:
sudo /sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 222 -j ACCEPT
В операционных системах, использующих firewalld, выполните такую команду:
sudo firewall-cmd --permanent --add-port=222/tcp
sudo firewall-cmd reload
Здесь порт 222 — это порт SSH, назначенный мною для примера. Теперь вы знаете как поменять порт SSH чтобы его не трогали боты. А какие методы защиты от ботов используете вы? Напишите в комментариях!
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
Об авторе
Прошел долгий путь от помощника системного администратора до DevOps инженера. Свою профессию считаю скорее хобби, чем работой, потому что занимаюсь любимым делом. Впервые Linux скачал в начале 2000 года по Dial-up соединению. Это был Mandriva Linux. На нем же запустил сервер Counter Strike, потом форум в пределах горного комбината, потом вдруг заметил, что любую проблему пытаюсь решить с помощью Linux и ведь решал же!
Для новичков администраторов сервера Linux / Unix. Как изменить SSH-порт для моего Linux или Unix-сервера с помощью опции командной строки?
Вы можете легко изменить порт SSH для своего Linux или Unix-сервера. Порт ssh, определенный в файле sshd_config. Этот файл находится в каталоге /etc/ssh/sshd_config .
Процедура изменения порта SSH для Linux или Unix Server
- Откройте приложение терминала и подключитесь к серверу через SSH.
- Найдите файл sshd_config, набрав команду.
- Отредактируйте файл и установите параметр «Port».
- Сохраните и закройте файл.
- Перезапустите службу sshd.
Найдите файл sshd_config, введя следующую команду
$ find / —name «sshd_config» |
Пример результата:
Отредактируйте файл и установите параметр порта
Введите следующую команду:
$ sudo vi /etc/ssh/sshd_config |
Найдите строку, которая будет выглядеть следующим образом:
ИЛИ
Чтобы установить порт на 2222, введите:
Сохраните и закройте файл.
Примечание о пользователях SELinux
Чтобы изменить порт на 2222, введите следующую команду :
# semanage port -a -t ssh_port_t -p tcp 2222 # systemctl restart sshd |
Обновление брандмауэра для приема порта ssh 2222
Если вы используете UFW на Ubuntu / Debian Linux , введите:
$ sudo ufw allow 2222/tcp |
Синтаксис для iptables выглядит следующим образом
$ sudo /sbin/iptables —A INPUT —m state —state NEW —m tcp —p tcp —dport 2222 —j ACCEPT |
Синтаксис для pf firewall выглядит следующим образом (FreeBSD / OpenBSD / NetBSD Unix) в вашем pf.conf:
pass log on $ext_if proto tcp to any port 2222 keep state |
Внимание : вы должны обновить настройки брандмауэра, чтобы применить новый порт. В противном случае следующая команда заблокирует доступ к ssh.
Перезапустить службу sshd.
Введите следующую команду в CentOS / RHEL / Fedora Linux:
$ sudo service sshd restart |
ИЛИ, если вы используете CentOS / RHEL / Fedora Linux с systemd:
$ sudo systemctl restart sshd |
ИЛИ, если вы используете Ubuntu / Debian / Mint Linux:
$ sudo service ssh restart |
ИЛИ, если вы используете Ubuntu / Debian / Mint Linux с systemd:
$ sudo ystemctl restart ssh |
Или, если вы используете FreeBSD Unix, введите:
$ sudo service sshd restart |
Услуги удаленной поддержки и администрироания серверов, [email protected]
Нет похожих статей.