Как найти службу по номеру порта

В этом руководстве объясняется несколько разных способов узнать, какая служба прослушивает определенный порт в Linux.

Большинство из вас знает порт по умолчанию для популярных служб или процессов

Например, порт Apache по умолчанию – 80, порт FTP по умолчанию – 21, а порт SSH по умолчанию – 22.

Вы можете найти имена и номера портов в Linux, как описано в этом руководстве.

Номера портов по умолчанию также можно изменить на любые пользовательские порты для защиты сервера Linux.

Если изменить номер порта по умолчанию, как вы узнаете, какая служба прослушивает какой порт?

Вот что мы собираемся выяснить сейчас!

Содержание

  1. Найдите, какая служба прослушивает определенный порт в Linux
  2. Метод 1 – Использование netstat
  3. Способ 2 – Использование команды «ss»
  4. Способ 3 – Использование lsof
  5. Метод 4 – Использование команды fuser

Найдите, какая служба прослушивает определенный порт в Linux

Я перечислил четыре метода, которые помогают проверить, какая служба работает с определенным номером порта.

Я буду продолжать обновлять этот список, если буду сталкиваться с любыми новыми методами в будущем.

Так что, добавьте в закладки и проверяйте эту статью время от времени.

Метод 1 – Использование netstat

Это наиболее часто используемый способ узнать, какая служба прослушивает какой порт.

Netstat – это утилита командной строки, используемая для печати сетевых подключений, таблиц маршрутизации, статистики интерфейса, маскарадных подключений и многоадресного членства.

Netstat доступен в репозиториях по умолчанию большинства дистрибутивов Linux.

Чтобы установить его на Arch Linux и его вариантах, выполните:

$ sudo pacman -S net-tools

На CentOS, RHEL:

$ sudo yum install net-tools

На Fedora:

$ sudo dnf install net-tools

На Debian, Ubuntu:

$ sudo apt install net-tools

После установки выполните следующую команду, чтобы узнать, какие службы прослушивают какие порты:

Образец вывода:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      665/systemd-resolve 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1026/sshd           
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN      2068/python3        
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1072/mysqld         
tcp6       0      0 :::22                   :::*                    LISTEN      1026/sshd           
tcp6       0      0 :::80                   :::*                    LISTEN      1062/apache2        
udp        0      0 127.0.0.53:53           0.0.0.0:*                           665/systemd-resolve 
udp        0      0 192.168.225.22:68       0.0.0.0:*                           647/systemd-network 
udp        0      0 192.168.225.53:68       0.0.0.0:*                           647/systemd-network 
udp6       0      0 fe80::a00:27ff:feff:546 :::*                                647/systemd-network 
udp6       0      0 fe80::a00:27ff:fe7e:546 :::*

Приведенная выше команда перечисляет все службы и номера портов, которые они прослушивают.

Что если вы хотите узнать, какая служба прослушивает определенный порт?

Здесь пригодится команда grep!

Мы можем объединить команды netstat и grep, чтобы отфильтровать вывод для конкретной службы, например, mysqld, как показано ниже.

$ sudo netstat -tulpn | grep mysqld
[sudo] password for sk: 
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1076/mysqld

Видите?

Служба mysqld прослушивает номер порта 3306.

Если вы уже знаете номер порта, но не знаете, какая служба использует его в настоящее время, просто замените имя службы на номер порта, как показано ниже.

$ sudo netstat -tulpn | grep -w 3306
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1076/mysqld

Здесь флаг -w отображает только те строки, которые содержат совпадения, образующие целые слова.

Другими словами -w показывает точное совпадение данной строки.

Вы также можете использовать -i, чтобы игнорировать различия регистра, чтобы символы, отличающиеся только регистром, соответствовали друг другу.

$ sudo netstat -tulpn | grep -i 3306

Для более подробной информации обратитесь к справочным страницам.

$ man netstat

Но честно говоря Netstat уже устарел.

Альтернативой netstat является «ss».

Способ 2 – Использование команды «ss»

ss – утилита командной строки для исследования сокетов.

Это альтернатива netstat, и его использование почти такое же.

Он поставляется предварительно установленным на Ubuntu и его вариантах.

$ sudo ss -tulpn

Пример вывода

Netid          State             Recv-Q            Send-Q                                            Local Address:Port                       Peer Address:Port                                                                                                                                                                                     
udp            UNCONN            0                 0                                                 127.0.0.53%lo:53                              0.0.0.0:*               users:(("systemd-resolve",pid=671,fd=12))                                                                                                                                
udp            UNCONN            0                 0                                         192.168.225.22%enp0s3:68                              0.0.0.0:*               users:(("systemd-network",pid=653,fd=17))                                                                                                                                
udp            UNCONN            0                 0                                         192.168.225.53%enp0s8:68                              0.0.0.0:*               users:(("systemd-network",pid=653,fd=25))                                                                                                                                
udp            UNCONN            0                 0                             [fe80::a00:27ff:fe7e:8a9c]%enp0s8:546                                [::]:*               users:(("systemd-network",pid=653,fd=24))                                                                                                                                
udp            UNCONN            0                 0                             [fe80::a00:27ff:feff:d2e0]%enp0s3:546                                [::]:*               users:(("systemd-network",pid=653,fd=22))                                                                                                                                
tcp            LISTEN            0                 80                                                    127.0.0.1:3306                            0.0.0.0:*               users:(("mysqld",pid=1076,fd=32))                                                                                                                                        
tcp            LISTEN            0                 128                                               127.0.0.53%lo:53                              0.0.0.0:*               users:(("systemd-resolve",pid=671,fd=13))                                                                                                                                
tcp            LISTEN            0                 128                                                     0.0.0.0:22                              0.0.0.0:*               users:(("sshd",pid=1015,fd=3))                                                                                                                                           
tcp            LISTEN            0                 128                                                           *:80                                    *:*               users:(("apache2",pid=1094,fd=4),("apache2",pid=1090,fd=4),("apache2",pid=1089,fd=4),("apache2",pid=1088,fd=4),("apache2",pid=1087,fd=4),("apache2",pid=1062,fd=4))      
tcp            LISTEN            0                 128

Чтобы отфильтровать выходные данные для конкретной службы (например, mysqld), используйте:

$ sudo ss -tulpn | grep -w mysqld
tcp LISTEN 0 80 127.0.0.1:3306 0.0.0.0:* users:(("mysqld",pid=1076,fd=32))

Для более подробной информации обратитесь к справочным страницам.

Способ 3 – Использование lsof

Как следует из названия, lsof – это утилита командной строки для отображения всех открытых файлов, принадлежащих всем активным процессам.

Чтобы установить ее в Linux, используйте следующие команды в зависимости от используемого типа дистрибутива.

На Arch Linux:

$ sudo pacman -S lsof

На Debian, Ubuntu:

$ sudo apt install lsof

На CentOS, RHEL:

$ sudo yum install lsof

На Fedora:

$ sudo dnf install lsof

Чтобы узнать, какие процессы выполняются на каких портах, просто укажите номер порта, как показано в следующей команде:

Пример вывода:

COMMAND  PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
apache2 1062     root    4u  IPv6  20452      0t0  TCP *:http (LISTEN)
apache2 1087 www-data    4u  IPv6  20452      0t0  TCP *:http (LISTEN)
apache2 1088 www-data    4u  IPv6  20452      0t0  TCP *:http (LISTEN)
apache2 1089 www-data    4u  IPv6  20452      0t0  TCP *:http (LISTEN)
apache2 1090 www-data    4u  IPv6  20452      0t0  TCP *:http (LISTEN)
apache2 1094 www-data    4u  IPv6  20452      0t0  TCP *:http (LISTEN)

Для более подробной информации обратитесь к справочным страницам.

Метод 4 – Использование команды fuser

fuser – это еще одна утилита командной строки для идентификации процессов с использованием файлов или сокетов.

Она отображает PID процессов, использующих указанные файлы или файловые системы.

Она также доступна в стандартных репозиториях большинства дистрибутивов Linux.

Чтобы установить ее на Arch Linux, запустите:

$ sudo pacman -S psmisc

На Debian, Ubuntu:

$ sudo apt install psmisc

На CentOS, RHEL:

$ sudo yum install psmisc

На Fedora:

$ sudo dnf install psmisc

Сначала нам нужно найти PID службы или процесса, который прослушивает определенный порт.

Например, я собираюсь найти PID процесса, прослушивающего порт 3306, используя команду:

Вы увидите вывод:

3306/tcp: 1076

1076 – это PID.

А затем выясните фактический процесс, используя PID с помощью команды:

$ ps -p 1076 -o comm=
mysqld

Кроме того, вы можете использовать флаг -v, чтобы просмотреть полную информацию в одной команде.

$ sudo fuser -v 3306/tcp
                     USER        PID ACCESS COMMAND
3306/tcp:            mysql      1076 F.... mysqld

Для более подробной информации, обратитесь к страницам руководства.

При запуске новых сервисов в Windows, вы можете обнаружить что нужный порт уже занят (слушается) другой программой (процессом). Разберемся, как определить какая программ прослушивает определенный TCP или UDP порт в Windows.

Например, вы не можете запустить сайт IIS на стандартном 80 порту в Windows, т.к. этот порт сейчас занят (при запуске нескольких сайтов в IIS вы можете запускать их на одном или на разных портах). Как найти службу или процесс, который занял этот порт и завершить его?

Чтобы вывести полный список TCP и UDP портов, которые прослушиваются вашим компьютером, выполните команду:

netstat -aon| find "LIST"

Или вы можете сразу указать искомый номер порта:

netstat -aon | findstr ":80" | findstr "LISTENING"

Используемые параметры команды netstat:

  • a – показывать сетевые подключения и открытые порты
  • o – выводить идентфикатор професса (PID) для каждого подключения
  • n – показывать адреса и номера портов в числовом форматер

По выводу данной команды вы можете определить, что 80 порт TCP прослушивается (статус
LISTENING
) процессом с PID 16124.

netstat найти программу, которая заняла порт

Вы можете определить исполняемый exe файл процесса с этим PID с помощью Task Manager или с помощью команды:

tasklist /FI "PID eq 16124"

tasklist - найти процесс, который слушает порт в windows

Можно заменить все указанные выше команды одной:

for /f "tokens=5" %a in ('netstat -aon ^| findstr :80') do tasklist /FI "PID eq %a"

С помощью однострочной PowerShell команды можно сразу получить имя процесса, который прослушивает:

  • TCP порт:
    Get-Process -Id (Get-NetTCPConnection -LocalPort 80).OwningProcess
  • UDP порт:
    Get-Process -Id (Get-NetUDPEndpoint -LocalPort 53).OwningProcess

powershell найти процесс, который слушает TCP порт

Можно сразу завершить этот процесс, отправив результаты через pipe в командлет Stop-Process:

Get-Process -Id (Get-NetTCPConnection -LocalPort 80).OwningProcess| Stop-Process

Проверьте, что порт 80 теперь свободен:

Test-NetConnection localhost -port 80

проверить что порт свободен

Чтобы быстрой найти путь к исполняемому файлу процесса в Windows, используйте команды:

cd /

dir tiny.exe /s /p

Или можно для поиска файла использовать встроенную команду where :

where /R C: tiny

В нашем случае мы нашли, что исполняемый файл
tiny.exe
(легкий HTTP сервер), который слушает 80 порт, находится в каталоге c:Temptinywebtinyweb-1-94

команда позволяет найти путь к exe файу в windows

Содержание

  1. Найти процесс по номеру порта в Linux
  2. Пример использования netstat
  3. Пример использования fuser
  4. Пример использования lsof
  5. 4 способа узнать, какие порты прослушиваются в Linux
  6. 1. Используя команду netstat
  7. 2. Используя команду ss
  8. 3. Используя программу Nmap
  9. 4. Используя команду lsof
  10. Как проверить открытые порты в Linux (используемые порты)
  11. How to Check for Listening Ports in Linux (Ports in use)
  12. Что такое открытый порт (порт прослушивания)
  13. Проверьте порты прослушивания с netstat
  14. Проверьте порты прослушивания с ss
  15. Проверьте порты прослушивания с lsof
  16. Вывод
  17. Как посмотреть открытые порты в Linux
  18. Как посмотреть открытые порты linux
  19. 1. netstat
  20. 3. lsof
  21. 4. Nmap
  22. 5. Zenmap
  23. Выводы
  24. Как проверить прослушивающие порты в Linux (используемые порты)
  25. Что такое порт прослушивания
  26. Проверьте порты прослушивания с помощью netstat
  27. Проверьте порты прослушивания с помощью ss
  28. Проверьте порты прослушивания с помощью lsof
  29. Выводы

Найти процесс по номеру порта в Linux

При работе в Unix-системах мне частенько приходится определять, какой процесс занимает порт, например, чтобы остановить его и запустить на нём другой процесс. Поэтому я решил написать эту небольшую статью, чтоб каждый, прочитавший её, мог узнать, каким процессом занят порт в Ubuntu, CentOS или другой ОС из семейства Linux.

Как же вычислить, какие запущенные процессы соотносятся с занятыми портами? Как определить, что за процесс открыл udp-порт 2222, tcp-порт 7777 и т.п.? Получить подобную информацию мы можем нижеперечисленными методами:

netstat утилита командной строки, показывающая сетевые подключения, таблицы маршрутизации и некоторую статистику сетевых интерфейсов; fuser утилита командной строки для идентификации процессов с помощью файлов или сокетов; lsof утилита командной строки, отображающая информацию об используемых процессами файлах и самих процессах в UNIX-системе; /proc/$pid/ в ОС Linux /proc для каждого запущенного процесса содержит директорию (включая процессы ядра) в /proc/$PID с информацией об этом процессе, в том числе и название процесса, открывшего порт.

Использование вышеперечисленных способов может потребовать права супер-пользователя.

Теперь давайте рассмотрим каждый из этих способов по отдельности.

Пример использования netstat

Введём в командную строку команду:

Получим примерно такой результат:

Из вывода видно, что 4942-й порт был открыт Java-приложением с PID’ом 3413. Проверить это можно через /proc :

Примерный результат выполнения команды:

Результат будет примерно такой:

Пример использования fuser

Для того, чтобы вычислить процесс, занимающий порт 5050, введём команду:

И получим результат:

Пример использования lsof

При использовании lsof введите команду по одному из шаблонов:

Пример реального использования:

После этого мы можем получить более полную информацию о процессах с PID’ами 2123, 2124 и т.д..

На выходе получим примерно следующее:

Получить информацию о процессе также можно следующим проверенным способом:

В этом выводе можно выделить следующие параметры:

Надеюсь, у меня получилось доступно объяснить, как определить процесс по порту в Linux-системах, и теперь у вас ни один порт не останется неопознанным!

Источник

4 способа узнать, какие порты прослушиваются в Linux

Порт может в одном из следующих состояний: открыт (open), фильтруется (filtered), закрыт (closed), без фильтрации (unfiltered). Порт называется открытым если какое-либо приложение, служба на целевой машине прослушивает (listening) его в ожидании соединений/пакетов. Также по отношению к службе часто употребляют термин «привязка» (bind), который означает, что служба назначена к определённому порту, то есть после её запуска она будет прослушивать его, чтобы ответить на входящие запросы.

Термин «привязка» используют по отношению к службам, которые прослушивают порт на постоянной основе и готовы принять входящие соединения. Примером таких служб являются SSH, MySQL, веб-сервер. Некоторые приложения (например, веб-браузер) делают исходящие соединения. Для этих исходящих соединений обычно используется порт с номером в десятки тысяч, например, 37830 или 46392 или 54284 или что-то подобное. Но они используют порт на короткое время — только чтобы отправить запрос и получить ответ. Сразу после получения ответа программа освобождает порт. Если ей понадобится вновь сделать запрос, то она может выбрать любой другой незанятый порт — необязательно тот же самый. Такие порты не являются прослушивающими, то есть они не принимают внешние запросы на инициализацию соединения. Это состояние сокета называется ESTABLISHED, его нужно отличать от прослушивания порта (LISTENING), то есть от открытых портов.

В этой статье будут рассмотрены четыре способа проверить открытые порты, точнее говоря, какие порты прослушиваются в системе, а также показано вам как найти приложение (службу) прослушивающие определённый порт в Linux.

1. Используя команду netstat

Netstat — это широко применяемый инструмент для запроса информации о сетевой подсистеме Linux. Вы можете использовать её для показа всех открытых портов примерно так:

Флаг -l говорит netstat вывести все прослушивающие сокеты, -t означает показать все TCP соединения, -u для показа всех UDP соединений и -p включает показывать PID и имя программы/приложения, которое прослушивает порт.

Обратите внимание, что вместо номеров портов программа выводит имена популярных служб. Если вы хотите, чтобы порты были показаны как числа, то добавьте флаг -n.

Вы также можете использовать команду grep для определения, какое приложение прослушивает определённый порт, например:

xnetstat3.png.pagespeed.ic.7jHi tcN52

Можно искать не по имени службы, а по номеру порта, с помощью этого можно определить, какая служба привязана к определённому порту:

2. Используя команду ss

ss — это другой полезный инструмент для отображения информации о сокетах. Её вывод выглядит похоже с тем, какую информацию даёт netstat. В документации netstat сказано, что она в основном устарела и её заменой является как раз ss.

Следующая команда покажет все прослушиваемые порты для TCP и UDP соединений в виде цифровых значений:

Опции имеют такое же значение:

Если добавить ключ -p, то программа дополнительно покажет процессы, использующие сокет:

xss2.png.pagespeed.ic.wIf73CNw U

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

3. Используя программу Nmap

Nmap — это мощный и популярный инструмент исследования сети и сканер портов. Для установки nmap в вашу систему используйте стандартный менеджер пакетов как показано ниже.

На Debian/Ubuntu/Linux Mint:

На CentOS/RHEL:

На Fedora 22+:

На Arch Linux:

Для сканирования открытых/прослушиваемых портов на вашей системе Linux, запустите следующую команду (она может занять долгое время для завершения):

nmap

4. Используя команду lsof

Последний инструмент, который мы рассмотрим в этой статье, это команда lsof, которая используется для вывода списка открытых файлов в Linux. Поскольку в Unix/Linux всё является файлом, открытый файл может быть потоком или сетевым файлом.

Для вывода списка всех Интернет и сетевых файлов, используйте опцию -i. Помните, что эта команда показывает смесь имён служб и цифровых портов.

lsof

Чтобы найти, какое приложение прослушивает определённый порт, запустите lsof в следующей форме:

lsof2

Вот и всё! В этой статье мы узнали четыре способа проверить открытые порты в Linux. Мы также показали, как проверить, какой процесс привязан к определённому порту.

О том, как правильно понимать вывод этих команд, смотрите статью «Что означают 0.0.0.0, :*, [::], 127.0.0.1. Как понять вывод NETSTAT».

Источник

Как проверить открытые порты в Linux (используемые порты)

How to Check for Listening Ports in Linux (Ports in use)

6e8872cd4cde520f4b797b79d71015d9

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

Что такое открытый порт (порт прослушивания)

Сетевой порт идентифицируется его номером, соответствующим IP-адресом и типом протокола связи, таким как TCP или UDP.

Вы не можете иметь две службы, прослушивающие один и тот же порт на одном и том же IP-адресе.

Например, если вы используете веб-сервер Apache, который прослушивает порты, 80 и 443 вы пытаетесь установить Nginx, позднее не удастся запустить, потому что порты HTTP и HTTPS уже используются.

Проверьте порты прослушивания с netstat

netstat это инструмент командной строки, который может предоставить информацию о сетевых подключениях

Чтобы получить список всех прослушиваемых портов TCP или UDP, включая службы, использующие порты и состояние сокета, используйте следующую команду:

Параметры, используемые в этой команде, имеют следующее значение:

Вывод будет выглядеть примерно так:

Важными столбцами в нашем случае являются:

Выходные данные показывают, что на этой машине порт 22 используется сервером SSH:

Если вывод пуст, это означает, что ничего не прослушивает порт.

Вы также можете отфильтровать список на основе критериев, например, PID, протокола, состояния и т. Д.

Проверьте порты прослушивания с ss

Вывод почти такой же, как тот, о котором сообщили netstat :

Проверьте порты прослушивания с lsof

lsof это мощная утилита командной строки, которая предоставляет информацию о файлах, открытых процессами.

В Linux все это файл. Вы можете думать о сокете как о файле, который пишет в сеть.

Чтобы получить список всех прослушивающих TCP-портов, lsof введите:

Используются следующие параметры:

Большинство имен выходных столбцов говорят сами за себя:

Чтобы узнать, какой процесс прослушивает определенный порт, например, порт, который 3306 вы используете:

Выходные данные показывают, что порт 3306 используется сервером MySQL:

Для получения дополнительной информации посетите страницу руководства lsof и прочитайте обо всех других мощных опциях этого инструмента.

Вывод

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

Источник

Как посмотреть открытые порты в Linux

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

Как посмотреть открытые порты linux

1. netstat

Утилита netstat позволяет увидеть открытые в системе порты, а также открытые на данный момент сетевые соединения. Для отображения максимально подробной информации надо использовать опции:

Открытые порты Linux, которые ожидают соединений имеют тип LISTEN, а перед портом отображается IP адрес на котором сервис ожидает подключений. Это может быть определенный IP адрес или */0.0.0.0 что означают любой доступный адрес:

Snimok ekrana ot 2020 05 01 11 23 48

Snimok ekrana ot 2020 05 01 11 24 32

Можно вывести только процессы, работающие на 80-том порту:

Snimok ekrana ot 2020 05 01 11 25 29

3. lsof

Snimok ekrana ot 2020 05 01 13 19 00

Ещё один пример, смотрим какие процессы работают с портом 80:

Snimok ekrana ot 2020 05 01 13 19 15

4. Nmap

sudo apt install nmap

Затем можно использовать:

Snimok ekrana ot 2020 05 01 11 28 10

Для простого сканирования можно запускать утилиту без опций. Детальнее о её опциях можно узнать в статье про сканирование сети в Nmap. Эта утилита ещё будет полезна если вы хотите посмотреть какие порты на компьютере доступны из интернета.

Snimok ekrana ot 2020 05 01 11 30 41

Дальше запускаем сканирование:

Snimok ekrana ot 2020 05 01 11 30 58

5. Zenmap

sudo apt install zenmap

Запустить программу можно из главного меню или командой:

Затем введите адрес localhost в поле Цель и нажмите кнопку Сканирование:

Snimok ekrana ot 2020 05 01 11 29 10

После завершения сканирования утилита вывела список открытых портов Linux.

Выводы

В этой статье мы рассмотрели инструменты, которые вы можете использовать для того чтобы узнать узнать открытые порты linux. Инструментов не так много как для просмотра информации об оперативной памяти или процессоре, но их вполне хватает. А какими программами пользуетесь вы? Напишите в комментариях!

Источник

Как проверить прослушивающие порты в Linux (используемые порты)

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

Что такое порт прослушивания

Сетевой порт идентифицируется по его номеру, связанному IP-адресу и типу протокола связи, например TCP или UDP.

Порт прослушивания — это сетевой порт, на котором приложение или процесс прослушивает, выступая в качестве конечной точки связи.

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

У вас не может быть двух служб, слушающих один и тот же порт на одном IP-адресе.

Проверьте порты прослушивания с помощью netstat

netstat — это инструмент командной строки, который может предоставить информацию о сетевых подключениях.

Чтобы вывести список всех прослушиваемых портов TCP или UDP, включая службы, использующие порты, и статус сокета, используйте следующую команду:

Параметры, используемые в этой команде, имеют следующее значение:

Результат будет выглядеть примерно так:

Важными столбцами в нашем случае являются:

Выходные данные показывают, что на этой машине порт 22 используется сервером SSH:

Если вывод пуст, это означает, что порт ничего не прослушивает.

Вы также можете фильтровать список по критериям, например, PID, протоколу, состоянию и так далее.

Проверьте порты прослушивания с помощью ss

Результат почти такой же, как у netstat :

Проверьте порты прослушивания с помощью lsof

lsof — это мощная утилита командной строки, которая предоставляет информацию о файлах, открытых процессами.

В Linux все является файлом. Вы можете думать о сокете как о файле, который записывает в сеть.

Чтобы получить список всех прослушивающих TCP-портов с типом lsof :

Используются следующие параметры:

Большинство имен выходных столбцов говорят сами за себя:

Чтобы узнать, какой процесс прослушивает определенный порт, например порт 3306 вы должны использовать:

Выходные данные показывают, что сервер MySQL использует порт 3306 :

Для получения дополнительной информации посетите страницу руководства lsof и прочтите обо всех других мощных возможностях этого инструмента.

Выводы

Мы показали вам несколько команд, которые вы можете использовать, чтобы проверить, какие порты используются в вашей системе, и как узнать, какой процесс прослушивает определенный порт.

Если у вас есть вопросы или замечания, пожалуйста, оставьте комментарий ниже.

Источник

Сканер портов позволяет проверить порт на доступность для заданного ip-адреса или домена. Механизм позволяет проверять открытость как TCP портов, так и UDP.

Сканер осуществляет попытку соединения на указанный порт, в результате, показывает открыт он или закрыт. Также в результате можно посмотреть какой сетевой сервис использует найденный порт. Сканирование длится пару минут, после чего выводится список портов в виде таблицы.

Вид :

Идет анализ… Подождите.

Использование:

Введите имя домена или ip-адрес узла, выберите вариант сканирования:

  • Популярные порты – сканируются порты популярных сервисов;
  • Выберите протокол для сканирования;
  • Указать свои – укажите порты для сканирования (не более 10 портов за раз). Указывать можно через запятую.

И нажмите “Запуск”.

На компьютере может быть установлено довольно много программ и все они резервируют в операционной системе определенный порт для взаимодействия с другим программным обеспечением по сети. В большинстве случаев пользователь заранее знает какой порт использует программа. Это может быть официально зарезервированный порт, под определенный сетевой протокол. Например почтовые программы используют для приема почты протокол POP3 и резервируют порт 110. Бывают неофициально резервируемые порты, например порт 1540 используемый агентом сервера 1С:Предприятие. Информацию об используемых неофициальных портах разработчики программного обеспечения указывают в документации.

Определения порта программы стандартными средствами Windows

Узнать какой порт использует программа в операционной системе Windows можно используя инструменты командной строки – tasklist и netstat. С помощью tasklist узнаем номер идентификатора процесса – PID, затем в netstat находим номер порта этого процесса.

Поиск идентификатора процесса PID

1. Открываем командную строку: сочетание клавиш <Win +R> и вводим команду CMD.

запуск командной строки wondows

2. Запускаем tasklist и находим PID процесса.

Если необходимо отобразить полный список процессов, в том числе служебных и системных, необходимо использовать tasklist без аргументов.

tasklist

Команда tasklist /fi “status eq running” найдет только те процессы, которые были запущенны программами. Это сократит список процессов и облегчит поиск.

tasklist /fi "status eq running"

Находим в списке нужную программу, например OneDrive.exe и запоминаем соответствующий PID.

список активных процессов

Поиск порта процесса

Для получения списка используемых портов воспользуемся утилитой командной строки netstat.

netstat -aon

B netstat были использованы слtдующие аргументы:

-a – показывает все сокеты, используемые процессами
-o – показывает PID процесса
-n – показывает адреса в числовом формате

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

список активных сетевых соединений

Чтобы отфильтровать список и сразу найти сетевое соединение с нужным PID перенаправим результаты netstat в утилиту findstr “PID_number”, где PID_number – идентификатор искомого процесса.

netstat -aon | findstr "15304"
фильтр списка сетевых соединений по PID

В найденных результатах видно, что процесс c PID 15304 (программа OneDrive.exe) использует несколько сетевых портов: 11906, 11907, 11908.

Обращайте внимание на то, для какого траспортного протокола открыт порт: ТСР или UDP. Это информация будет важна, когда будете пробрасывать порт через межсетевой экран.

Программы для просмотра сетевых соединений

Этот способ подойдет для тех, кто не хочет погружаться в работу утилит командной строки Windows, а желает быстро и просто получить информацию о портах, которые использует программа, в графическом интерфейсе.

Без труда в интернете можно найти 2 бесплатные программы для полчения списка сетевых соединений операционной системы – это “TCPView” и “Curr ports”.

TCPView

TCPView – программа из набора утилит Sysinternals от Марка Руссиновича, с некоторых пор ставшей частью самого Microsoft. Программа не требует установки, занимает небольшой объем дискового пространства и скачать ее можно с официального сайта Майкрософт: https://docs.microsoft.com/ru-ru/sysinternals/downloads/tcpview.

После запуска программы будет сразу показан список всех сетевых соединений процессов с информацией о протоколе, локальном и удаленном адресе, локальном и удаленном порте соединения. Список можно фильтровать, сортировать и следить за изменениями онлайн. В дополнение к этому можно убить какой-либо процесс или определить кому принадлежит ip-адрес хоста, с которым установлено соединение.

Из мелких недостатков – отсутствие русского языка.

как найти порт в TCPView

CurrPorts

CurrPorts – программа от проекта под названием NirSoft, который так же специализируется на разработке простых и бесплатных утилит для Windows. Программа так же не требует установки, мало весит и в целом очень похожа на TCPView, но имеет более аскетичный интерфейс. Скачать программу можно с официального сайта проекта: https://www.nirsoft.net/utils/cports.html#DownloadLinks.

Из плюсов программы следует отметить наличие русского языка. Чтобы русифицировать программу нужно скачать отдельный файл русификации и положить его в папку с программой.

как определить порт с помощью CurrPorts

Остались вопросы или что-то непонятно – смело оставляйте комментарии.

Добавить комментарий