- Как проверить прослушивающие порты в Linux (используемые порты)
- Что такое порт прослушивания
- Проверьте порты прослушивания с помощью netstat
- Проверьте порты прослушивания с помощью ss
- Проверьте порты прослушивания с помощью lsof
- Выводы
- Проверка занятости порта сервисом в Linux
- Oct 4, 2018 06:09 · 637 words · 3 minute read lsof netstat fuser tips
- Как узнать, какой номер порта используется процессом в Linux?
- Метод-1: Использование команды ss
- Способ-2: Использование команды netstat
- Метод-3: использование команды lsof
- Метод-4: Использование команды fuser
- Метод-5: Использование команды nmap
- Метод-6: Использование команды systemctl
- Как проверить открытые порты в Linux (используемые порты)
- How to Check for Listening Ports in Linux (Ports in use)
- В этой статье объясняется , как узнать, какие услуги прослушивает порты с помощью netstat, ss и lsof команд. Инструкции применимы для всех операционных систем на базе Linux и Unix, таких как macOS.
- Что такое открытый порт (порт прослушивания)
- Проверьте порты прослушивания с netstat
- Проверьте порты прослушивания с ss
- Проверьте порты прослушивания с lsof
- Вывод
Как проверить прослушивающие порты в Linux (используемые порты)
При устранении неполадок сетевого подключения или проблем, связанных с конкретным приложением, в первую очередь следует проверить, какие порты фактически используются в вашей системе и какое приложение прослушивает конкретный порт.
В этой статье объясняется, как использовать команды netstat , ss и lsof чтобы узнать, какие службы прослушивают какие порты. Инструкции применимы для всех операционных систем Linux и Unix, таких как macOS.
Что такое порт прослушивания
Сетевой порт идентифицируется по его номеру, связанному IP-адресу и типу протокола связи, например TCP или UDP.
Порт прослушивания — это сетевой порт, на котором приложение или процесс прослушивает, выступая в качестве конечной точки связи.
Каждый порт прослушивания может быть открыт или закрыт (отфильтрован) с помощью брандмауэра. В общих чертах, открытый порт — это сетевой порт, который принимает входящие пакеты из удаленных мест.
У вас не может быть двух служб, слушающих один и тот же порт на одном IP-адресе.
Например, если вы используете веб-сервер Apache, который прослушивает порты 80 и 443 и вы пытаетесь установить Nginx , последний не запустится, потому что порты HTTP и HTTPS уже используются.
Проверьте порты прослушивания с помощью netstat
netstat — это инструмент командной строки, который может предоставить информацию о сетевых подключениях.
Чтобы вывести список всех прослушиваемых портов TCP или UDP, включая службы, использующие порты, и статус сокета, используйте следующую команду:
Параметры, используемые в этой команде, имеют следующее значение:
- -t — Показать TCP-порты.
- -u — Показать порты UDP.
- -n — Показывать числовые адреса вместо разрешающих узлов.
- -l — Показать только прослушивающие порты.
- -p — Показать PID и имя процесса слушателя. Эта информация отображается только в том случае, если вы запускаете команду от имени пользователя root или sudo .
Результат будет выглядеть примерно так:
Важными столбцами в нашем случае являются:
- Proto — протокол, используемый сокетом.
- Local Address — IP-адрес и номер порта, который прослушивает процесс.
- PID/Program name — PID и имя процесса.
Если вы хотите отфильтровать результаты, используйте команду grep . Например, чтобы узнать, какой процесс прослушивает TCP-порт 22, введите:
Выходные данные показывают, что на этой машине порт 22 используется сервером SSH:
Если вывод пуст, это означает, что порт ничего не прослушивает.
Вы также можете фильтровать список по критериям, например, PID, протоколу, состоянию и так далее.
netstat устарел и заменен ss и ip , но все же это одна из наиболее часто используемых команд для проверки сетевых подключений.
Проверьте порты прослушивания с помощью ss
ss — это новый netstat . В нем отсутствуют некоторые функции netstat , но он предоставляет больше состояний TCP и работает немного быстрее. Параметры команды в основном те же, поэтому переход с netstat на ss не представляет труда.
Чтобы получить список всех прослушивающих портов с помощью ss , введите:
Результат почти такой же, как у netstat :
Проверьте порты прослушивания с помощью lsof
lsof — это мощная утилита командной строки, которая предоставляет информацию о файлах, открытых процессами.
В Linux все является файлом. Вы можете думать о сокете как о файле, который записывает в сеть.
Чтобы получить список всех прослушивающих TCP-портов с типом lsof :
Используются следующие параметры:
- -n — Не преобразовывать номера портов в имена портов.
- -p — Не разрешать имена хостов, показывать числовые адреса.
- -iTCP -sTCP:LISTEN — Показать только сетевые файлы с состоянием TCP LISTEN.
Большинство имен выходных столбцов говорят сами за себя:
- COMMAND , PID , USER — имя, pid и пользователь, запускающий программу, связанную с портом.
- NAME — номер порта.
Чтобы узнать, какой процесс прослушивает определенный порт, например порт 3306 вы должны использовать:
Выходные данные показывают, что сервер MySQL использует порт 3306 :
Для получения дополнительной информации посетите страницу руководства lsof и прочтите обо всех других мощных возможностях этого инструмента.
Выводы
Мы показали вам несколько команд, которые вы можете использовать, чтобы проверить, какие порты используются в вашей системе, и как узнать, какой процесс прослушивает определенный порт.
Если у вас есть вопросы или замечания, пожалуйста, оставьте комментарий ниже.
Источник
Проверка занятости порта сервисом в Linux
Oct 4, 2018 06:09 · 637 words · 3 minute read lsof netstat fuser tips
Однажды вам обязательно понадобится проверить используемый порт определенного сервиса (или наоборот, найти сервисы, слушающие конкретный порт) — в Linux существует несколько утилит командной строки, которые могут с этим помочь. Давайте разберемся!
Первым делом на ум приходит утилита netstat , с помощью которой можно проверить сетевые соединения, статистику сетевых интерфейсов, таблицу маршрутизации и т. д.
Устанавливается данная утилита в разных дистрибутивах по-разному, например, для RedHat и CentOS:
Для вывода детальной информации о всех TCP и UDP ендпоинтах можно воспользоваться следующей командой:
Вывод будет примерно следующим:
- -p — вывод ID процесса и его имени;
- -n — вывод адресов;
- -l — вывод сокетов;
- -t — вывод TCP соединений;
- -u — вывод UDP соединений.
Найти сервис, запущенный на определенном порту можно так:
Аналогично можно найти на каком порту запущен определенный сервис:
Также для наших целей подойдет утилита командной строки fuser . По умолчанию она не установлена в большинстве операционных систем, чтобы установить ее в Centos/RedHat делаем так:
Например, чтобы найти идентификаторы процессов (PIDs), запущенных на 80-м порту, выполняем команду:
Результат выполнения будет примерно следующим:
Далее можем найти имя процесса по его идентификатору (PID):
Еще один способ — использование утилиты lsof . Установка ее в RedHat/CentOS выглядит так:
Вывод всех активных TCP и UPD соединений:
Результатом будет примерно следующее:
Проверить использование конкретного порта можно так:
Напоследок можно также воспользоваться утилитой whatportis . Ее установка в RedHat/Centos требует чуть больше действий:
В Debian/Ubuntu все гораздо проще:
В общем виде использование утилиты выглядит так:
Если вам неизвестно точное имя сервиса, можно воспользоваться опцией —like , например:
Также доступен вывод информации в json-формате:
Источник
Как узнать, какой номер порта используется процессом в Linux?
Как администратор Linux, вы должны знать, является ли соответствующая служба обязательной / прослушивающей с правильным портом или нет.
Это поможет вам легко устранить проблему, когда вы столкнулись с проблемами, связанными с портами.
Порт – это логическое соединение, которое идентифицирует конкретный процесс в Linux.
Доступны два вида порта: физическое и программное обеспечение.
Поскольку операционная система Linux является программным обеспечением, мы собираемся обсудить порт программного обеспечения.
Программный порт всегда связан с IP-адресом хоста и соответствующим типом протокола для связи. Порт используется для распознования приложения.
Большинство служб, связанных с сетью, должны открыть сокет для прослушивания входящих сетевых запросов.
Socket уникален для каждого сервиса.
Сокет – это комбинация IP-адреса, программного порта и протокола.
Область номеров портов доступна для протокола TCP и UDP.
Протокол управления передачей (TCP) и протокол пользовательских дейтаграмм (UDP) используют номера портов для связи.
Это значение от 0 до 65535.
Ниже приведены категории присвоений портов.
- 0-1023: Хорошо известные порты или системные порты
- 1024-49151: Зарегистрированные порты для приложений
- 49152-65535: Динамические порты или частные порты
Вы можете проверить детали зарезервированных портов в файле /etc/services в Linux.
Это может быть достигнуто с использованием шести методов.
- ss: ss используется для вывода статистики сокетов.
- netstat: netstat отображает список открытых сокетов.
- lsof: lsof – список открытых файлов.
- fuser: идентификаторы процессов в списке терминов всех процессов, которые открывают один или несколько файлов
- nmap: nmap – Инструмент сетевого исследования и сканер безопасности / портов
- systemctl: systemctl – Управление системой systemd и менеджером сервисов
Метод-1: Использование команды ss
ss используется для вывода статистики сокетов.
Он позволяет отображать информацию, аналогичную netstat.
Он может отображать больше информации о TCP и его состоянии, чем другие инструменты.
Он может отображать статистику для всех типов сокетов, таких как PACKET, TCP, UDP, DCCP, RAW, домен Unix и т. д.
В качестве альтернативы вы также можете проверить это с помощью номера порта.
Способ-2: Использование команды netstat
netstat – вывод сетевых подключений, таблиц маршрутизации, статистики интерфейсов, соединений маскарада и многоадресной рассылки.
По умолчанию netstat отображает список открытых сокетов.
Если вы не укажете каких-либо семейств адресов, будут выведены активные сокеты всех сконфигурированных семейств адресов.
Эта программа устарела. Замена для netstat – ss.
В качестве альтернативы вы также можете проверить это с помощью номера порта.
Метод-3: использование команды lsof
lsof – список открытых файлов.
Команда lsof Linux выводит информацию о файлах, открытых для процессов, запущенных в системе.
В качестве альтернативы вы также можете проверить это с помощью номера порта.
Метод-4: Использование команды fuser
Утилита fuser должна записывать на стандартный вывод идентификаторы процессов, запущенных в локальной системе, которые открывают один или несколько именованных файлов.
Метод-5: Использование команды nmap
Nmap («Network Mapper») – это инструмент с открытым исходным кодом для проверки сети и проверки безопасности.
Он был разработан для быстрого сканирования больших сетей, хотя он отлично работает с одиночными хостами.
Nmap использует необработанные IP-пакеты в новых способах определения того, какие хосты доступны в сети, какие службы (имя и версия приложения) эти хосты предлагают, какие операционные системы (и версии ОС) они запускают, какие типы фильтров пакетов / брандмауэры используются, и десятки других характеристик
Метод-6: Использование команды systemctl
systemctl – Управление системой systemd и менеджером сервисов.
Это замена старого системного управления SysV, и большинство современных операционных систем Linux были адаптированы под systemd.
Вышеприведенный пример будет показывать фактический порт прослушивания службы SSH при запуске службы SSHD в последнее время.
В большинстве случаев вышеприведенный вывод не показывает фактический номер порта процесса. в этом случае я предлагаю вам проверить детали, используя приведенную ниже команду из файла журнала
Источник
Как проверить открытые порты в Linux (используемые порты)
How to Check for Listening Ports in Linux (Ports in use)
В этой статье объясняется , как узнать, какие услуги прослушивает порты с помощью netstat, ss и lsof команд. Инструкции применимы для всех операционных систем на базе Linux и Unix, таких как macOS.
При устранении неполадок сетевого подключения или проблем, связанных с конкретным приложением, в первую очередь следует проверить, какие порты фактически используются в вашей системе, а какое приложение прослушивает определенный порт.
Что такое открытый порт (порт прослушивания)
Сетевой порт идентифицируется его номером, соответствующим IP-адресом и типом протокола связи, таким как TCP или UDP.
Порт прослушивания — это сетевой порт, который прослушивает приложение или процесс, выступая в качестве конечной точки связи.
Каждый порт прослушивания может быть открыт или закрыт (отфильтрован) с помощью брандмауэра. В общих чертах, открытый порт — это сетевой порт, который принимает входящие пакеты из удаленных мест.
Вы не можете иметь две службы, прослушивающие один и тот же порт на одном и том же IP-адресе.
Например, если вы используете веб-сервер Apache, который прослушивает порты, 80 и 443 вы пытаетесь установить Nginx, позднее не удастся запустить, потому что порты HTTP и HTTPS уже используются.
Проверьте порты прослушивания с netstat
netstat это инструмент командной строки, который может предоставить информацию о сетевых подключениях
Чтобы получить список всех прослушиваемых портов TCP или UDP, включая службы, использующие порты и состояние сокета, используйте следующую команду:
Параметры, используемые в этой команде, имеют следующее значение:
- -t — Показать порты TCP.
- -u — Показать порты UDP.
- -n — Показать числовые адреса вместо разрешения хостов.
- -l — Показывать только порты прослушивания.
- -p — Показать PID и имя процесса слушателя. Эта информация отображается, только если вы запускаете команду от имени пользователя root или sudo .
Вывод будет выглядеть примерно так:
Важными столбцами в нашем случае являются:
- Proto — Протокол, используемый сокетом.
- Local Address — IP-адрес и номер порта, на котором слушает процесс.
- PID/Program name — PID и название процесса.
Если вы хотите отфильтровать результаты, используйте команду grep . Например, чтобы узнать, какой процесс прослушивает TCP-порт 22, вы должны набрать:
Выходные данные показывают, что на этой машине порт 22 используется сервером SSH:
Если вывод пуст, это означает, что ничего не прослушивает порт.
Вы также можете отфильтровать список на основе критериев, например, PID, протокола, состояния и т. Д.
netstat устарел и заменен на ss и ip , но все же это одна из наиболее часто используемых команд для проверки сетевых подключений.
Проверьте порты прослушивания с ss
ss новый netstat . В нем отсутствуют некоторые netstat функции, но он предоставляет больше состояний TCP и работает немного быстрее. Параметры команды в основном одинаковы, поэтому переход с netstat на ss не сложен.
Чтобы получить список всех прослушивающих портов ss , наберите:
Вывод почти такой же, как тот, о котором сообщили netstat :
Проверьте порты прослушивания с lsof
lsof это мощная утилита командной строки, которая предоставляет информацию о файлах, открытых процессами.
В Linux все это файл. Вы можете думать о сокете как о файле, который пишет в сеть.
Чтобы получить список всех прослушивающих TCP-портов, lsof введите:
Используются следующие параметры:
- -n — Не конвертируйте номера портов в имена портов.
- -p — Не разрешайте имена хостов, показывайте числовые адреса.
- -iTCP -sTCP:LISTEN — Показывать только сетевые файлы с состоянием TCP LISTEN.
Большинство имен выходных столбцов говорят сами за себя:
- COMMAND , PID , USER — имя, ИДП и пользователь , запустив программу , связанную с портом.
- NAME — номер порта.
Чтобы узнать, какой процесс прослушивает определенный порт, например, порт, который 3306 вы используете:
Выходные данные показывают, что порт 3306 используется сервером MySQL:
Для получения дополнительной информации посетите страницу руководства lsof и прочитайте обо всех других мощных опциях этого инструмента.
Вывод
Мы показали вам несколько команд, которые вы можете использовать для проверки того, какие порты используются в вашей системе, и как найти процесс, который прослушивает определенный порт.
Источник