Какой процесс слушает порт в Linux?

17.05.2023

itpro

Linux

Комментариев пока нет
В этой статье мы рассмотрим, как найти процесс, который слушает определенный порт в Linux.
Можно получить информацию о процесс, который слушает определенный порт командой:
$ sudo lsof -i :8000
В этом примере видно, что порт 8000 занят процессом python3.

Можно вывести список всех запущенных процессов Linux, который используют любые TCP/UDP порты:
$ sudo netstat -lntup| grep LISTEN
Мы используем следующие ключи:
- -l – показать тольо прослушиваемые порты
- -n – показать IP адреса и номера портов в числовом виде и не пытаться их резолвить (соответствие номеров портов и название служб содержится в файле /etc/services)
- -t – показать открытые TCP порты
- -u – показать UDP порты
- -p – показать название процесс, который прослушивает порт

Мы нашли PID процесса ( 72005 ), который использует порт и теперь можно вывести информацию о том, как он запущен:
$ ps -aux | grep 72005

В этом примере видно, что процесс запущен вручную пользователем root с помощью команды python3 -m http.server (используется для запуска простого HTTP сервера на python для публикации текущего каталога).
Чтобы быстро завершить процесс, который слушает нужный вам порт и освободить его, выполните:
$ sudo kill -9 72005
Проверьте, что порт теперь свободен:
$ sudo lsof -i :8000
Ранее мы показывали, как найти программу, которую слушает определенный порт в Windows.
Предыдущая статья Следующая статья
Читайте далее в разделе Linux



Установка и настройка прокси сервера Squid в Linux
Управление конфигурацией Windows через Ansible
Мониторинг срока регистрации (освобождения) домена в Zabbix
Настройка Wi-Fi точки доступа на Linux
Как узнать, какой процесс использует тот или иной порт
Иногда полезно знать, какой процесс занял тот или иной порт, например, порт 80. В этой статье будет рассказано, как это сделать в Linux.
Решить поставленную задачу можно с помощью одной из команд — netstat, fuser и lsof. Также можно использовать псевдофайловую систему /proc (однако это менее удобный способ и мы его рассматривать не будем). Далее будут показаны примеры использования этих команд.
Использование netstat
Представим, что нам нужно найти процесс, использующий порт 80. Попробуем сделать это с помощью netstat.
Определяем процесс, использующий порт 80 с помощью netstat
В данном случае видно, что порт 80 используется процессом apache2. 11681 — это PID процесса. Получить дополнительную информацию о процессе можно командами:
Информация о процессе
Можно также ввести команду ps -ax | grep apache2 для того, чтобы узнать, какие процессы с именем apache2 еще запущены.
Список процессов apache2
Linux. Кто сидит на портах?
Контроль всех входов и выходов — это основа безопасности. Поэтому для определения уровня защищённости машины стоит первым делом проверить наличие открытых портов. Если они есть, то определить какие именно программы открывают эти порты. Попробуем это сделать.
Для получения списка открытых портов используем утилиту «netstat», которая показывает все TCP/UDP входящие/исходящие соединения. Выполним следующую команду от лица суперпользователя:
В этой команде используется пять ключей, чтобы сформировать список только из тех портов, которые прослушиваются, и распечатать названия программ, которые это делают. Разберём все ключи:
-l показать только прослушиваемые «LISTEN» порты
-n показывать сетевые адреса как ip адреса (числа), а не пытаться определять домены
-t показывать TCP порты
-u показывать UDP порты
-p показывать программу, которая слушает порт
При проверке портов обращайте внимание на ip адрес порта. Если он 127.0.0.*, то это внутренний адрес вашего устройства. То есть извне нельзя получить к нему доступ. К примеру, не стоит беспокоиться, если увидите процесс systemd-resolve по адресу 127.0.0.53:53. Этот процесс обслуживает DNS кеш устройства. Не удаляйте его, он нужен для работы интернета.
Но если вы видите порты с ip адресом «0.0.0.0» или «::», то к этим портам можно получить доступ извне. Но только если настроено правило в фаерволе.
Сейчас на замену «netstat» приходит утилита «ss». Ключи у них совпадают, поэтому можно писать:
Узнать название программы через занимаемый порт
Если нужно узнать название программы, которая занимает определённый порт, то можно получить его с помощью команды:
Где «номер_порта» — это цифра.
Кто слушает порт linux
Запись: Velonski/mytetra-database/master/base/1517206961geyd92ih88/text.html на raw.githubusercontent.com
Бывает, посмотришь список открытых портов на своем Linux сервере и думаешь, какое приложение слушает порт 4403 (например, хотя это не важно, у каждого порт будет свой). Для этого мы воспользуемся несложными командами:
tcp 0 0 0.0.0.0:4403 0.0.0.0:* LISTEN 1958/servicecs
Отсюда мы увидим, что порт 4403 слушает сервис с именем servicecs и PID-ом 1958. Теперь мы можем узнать о запущенном сервисе немного больше:
ps -aux | grep 1958
Она покажет скрипт, который запускает сервис:
softingin 1958 0.0 0.7 169704 63904 ? S Apr16 3:00 servicecs ./highload-servcs start -d
Теперь мы знаем кто занимает порт 4403, это больше не секрет.
Всего хорошего.
- Последовательное выполнение команд
- Кодировка файла: узнать и поменять
- Количество строк в файле
- Перемешать строки в файле случайным образом
- Команда SHUF — перемешивание строк в файле
- Деление текстовых файлов по кол-ву строк
- Список всех локальных пользователей в системе
- Массовое переименование файлов
- Debian — NetworkConfiguration
- Auto-Mounting SSHFS at Startup
- SSHFS AUTOmount on Fesity, Gutsy, Hardy, Intrepid
- How to start Virtual box machines automatically when booting?
- Как решить проблему SSH «Too many authentication failures for user»?
- Mounting external hard disk for all users at start up in ubuntu 14.04
- Увеличить размер диск. раздела
- Установка monit в Debian
- How To Install and Configure Monit
- 35 Practical Examples of Linux Find Command
- How to Connect to MySQL via SSH Tunnel in Linux
- How to Connect to a Remote MySQL Server via an SSH Tunnel
- Как установить почтовый сервер в Ubuntu или Debian
- 21 пример использования iptables для администраторов
- Добавить пользователя в группу
- Get a list of Open Ports in Linux
- How to use grep/ack with files in arbitrary encoding?
- Extract a single image from a video using FFMPEG
- Convert a video to a fixed screen size by cropping and resizing
- List All Environment Variables Command
- Logining into www-data
- Linux deny or block user login
- How Do I Find The Largest Top 10 Files and Directories On a Linux / UNIX / BSD?
- Linux Rename File Command
- Changing the default text editor on Linux
- How can I copy the output of a command directly into my clipboard?
- How to run process as background and never die?
- Connection reset by peer using sshfs
- SSHFS
- Linux Set Date and Time From a Command Prompt
- IceWM — берём в руки напильник
- Монтирование USB-накопителя через терминал
- Why am I getting “Permission Denied” when running ssh-add?
- How to remove duplicate lines inside a text file?
- Removing Duplicate Lines With Sort, Uniq and Shell Pipes
- Linux crontab examples (every X minutes or hours)
- The Complete Guide to “useradd” Command in Linux – 15 Practical Examples
- Linux / Unix: Find and Delete All Empty Directories & Files
- Как узнать какое приложение в linux слушает порт?
- Как проверить какое приложение слушает tcp порт
- Ошибка Unable to lock the administration directory /var/lib/dpkg
- Unpacking or uncompressing gz files under Linux and UNIX systems
- sed — 20 examples to remove / delete characters from a file
- Linux Check Disk Space Command To View System Disk Usage
- Linux mv command
- Linux Command Line Cheat Sheet
- How To Add Swap Space on Ubuntu 16.04
- 13 Linux Network Configuration and Troubleshooting Commands
- How do i edit resolv.conf
- How to create a file with a given size in Linux?
- Is there a way to create multiple directories at once with mkdir?
- Keyboard configuration in Xorg
- Раскладка клавиатуры в Xorg
- Clear contents of clipboard
- How to Clear RAM Memory Cache, Buffer and Swap Space on Linux
- История команд Linux
- Как создать рабочий образ сервера на Ubuntu?
- Set Time, Date Timezone in Linux from Command Line or Gnome