Перечислите все открытые порты и остановите службы, работающие через них

Пользователи Linux часто сталкиваются с трудностями при попытке вывести список всех открытых портов в своей системе и служб, отвечающих за управление этими портами.
В этой статье мы расскажем вам о самом простом способе найти список всех открытых портов в вашей системе Linux, определить, какие службы за ними стоят, и остановить эти службы.
Список всех открытых портов в Linux
Самый простой способ вывести список всех открытых портов в Linux, который мы знаем, — это использовать команду ss, которая встроена в систему и доступна в широком спектре систем Linux.
В качестве альтернативы вы можете использовать другую популярную утилиту командной строки под названием netstat
, которая имеет те же возможности, что и команда ss
, но требует установки пакета net-tools
в некоторых дистрибутивах Linux, поскольку он отсутствует.
По этой причине ss command
— идеальный вариант для вывода списка всех открытых портов в вашей системе Linux. Для этого нужно просто добавить к команде опцию -tulpn
.
ss -tulpn
Выходной сигнал:

В приведённом выше списке перечислены все открытые порты в вашей системе Linux. Вам нужно сосредоточиться только на портах, состояние которых обозначено как LISTEN
.
Определите службы, использующие открытые порты
Для определения служб или программ, отвечающих за открытие или управление открытым портом, как в предыдущем примере, требуются права root или sudo.
Например, если выполнить ранее упомянутую команду ss -tulpn
с правами суперпользователя или добавить sudo
перед командой, то будут перечислены все порты и соответствующие им службы.
sudo ss -tulpn
Выходной сигнал:

Определите службы, отвечающие за управление конкретным портом
В предыдущем примере вам был предоставлен полный список номеров портов и соответствующих служб, отвечающих за управление ими.
Однако вы можете использовать команду grep с предыдущей командой, чтобы отсортировать результаты по определённому номеру порта, как показано на рисунке.
sudo ss -tulpn | grep :80
Приведенная выше команда выведет список служб, отвечающих за управление портом 80.

В качестве альтернативы можно использовать lsof command
с опцией -i
и номером порта, который вы ищете, чтобы вывести список всех фоновых служб, работающих с этим портом.
sudo lsof -i :80
Выходной сигнал:

Закройте службы или программы, использующие открытый порт
Определив службы или программы, которые управляют конкретным открытым портом, вы можете корректно завершить их работу, используя соответствующие методы, которые зависят от конкретной программы.
Например, в нашей демонстрации мы искали службы, работающие через порт 80, которые впоследствии были идентифицированы как управляемые NGINX, что позволило нам корректно остановить их с помощью команды systemctl.
Остановите службу NGINX, работающую на порту 80 sudo systemctl stop nginx Проверьте состояние службы NGINX sudo systemctl status nginx
Выходной сигнал:

Кроме того, вы можете напрямую завершить работу всех служб или программ, отвечающих за управление этим конкретным портом, используя идентификатор процесса или его имя с помощью команды pkill.
sudo pkill nginx
Выходной сигнал:

Редактор: AndreyEx