При устранении неполадок сетевого подключения или проблем, связанных с конкретным приложением, в первую очередь следует проверить, какие порты фактически используются в вашей системе и какое приложение прослушивает конкретный порт.
В этой статье объясняется, как использовать команды netstat , ss и lsof чтобы узнать, какие службы прослушивают какие порты. Инструкции применимы для всех операционных систем Linux и Unix, таких как macOS.
Что такое порт прослушивания
Сетевой порт идентифицируется по его номеру, связанному IP-адресу и типу протокола связи, например TCP или UDP.
Порт прослушивания — это сетевой порт, на котором приложение или процесс прослушивает, выступая в качестве конечной точки связи.
Каждый порт прослушивания может быть открыт или закрыт (отфильтрован) с помощью брандмауэра. В общих чертах, открытый порт — это сетевой порт, который принимает входящие пакеты из удаленных мест.
У вас не может быть двух служб, слушающих один и тот же порт на одном IP-адресе.
Способы открытия портов на Windows 10, 8, 7
Например, если вы используете веб-сервер Apache, который прослушивает порты 80 и 443 и вы пытаетесь установить Nginx , последний не запустится, потому что порты HTTP и HTTPS уже используются.
Проверьте порты прослушивания с помощью netstat
netstat — это инструмент командной строки, который может предоставить информацию о сетевых подключениях.
Чтобы вывести список всех прослушиваемых портов TCP или UDP, включая службы, использующие порты, и статус сокета, используйте следующую команду:
sudo netstat -tunlp
Параметры, используемые в этой команде, имеют следующее значение:
- -t — Показать TCP-порты.
- -u — Показать порты UDP.
- -n — Показывать числовые адреса вместо разрешающих узлов.
- -l — Показать только прослушивающие порты.
- -p — Показать PID и имя процесса слушателя. Эта информация отображается только в том случае, если вы запускаете команду от имени пользователя root или sudo .
Результат будет выглядеть примерно так:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 445/sshd tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 929/master tcp6 0 0 . 3306 . * LISTEN 534/mysqld tcp6 0 0 . 80 . * LISTEN 515/apache2 tcp6 0 0 . 22 . * LISTEN 445/sshd tcp6 0 0 . 25 . * LISTEN 929/master tcp6 0 0 . 33060 . * LISTEN 534/mysqld udp 0 0 0.0.0.0:68 0.0.0.0:* 966/dhclient
Важными столбцами в нашем случае являются:
- Proto — протокол, используемый сокетом.
- Local Address — IP-адрес и номер порта, который прослушивает процесс.
- PID/Program name — PID и имя процесса.
Если вы хотите отфильтровать результаты, используйте команду grep . Например, чтобы узнать, какой процесс прослушивает TCP-порт 22, введите:
sudo netstat -tnlp | grep :22
Выходные данные показывают, что на этой машине порт 22 используется сервером SSH:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 445/sshd tcp6 0 0 . 22 . * LISTEN 445/sshd
Если вывод пуст, это означает, что порт ничего не прослушивает.
Как узнать какие порты открыты на компьютере
Вы также можете фильтровать список по критериям, например, PID, протоколу, состоянию и так далее.
netstat устарел и заменен ss и ip , но все же это одна из наиболее часто используемых команд для проверки сетевых подключений.
Проверьте порты прослушивания с помощью ss
ss — это новый netstat . В нем отсутствуют некоторые функции netstat , но он предоставляет больше состояний TCP и работает немного быстрее. Параметры команды в основном те же, поэтому переход с netstat на ss не представляет труда.
Чтобы получить список всех прослушивающих портов с помощью ss , введите:
sudo ss -tunlp
Результат почти такой же, как у netstat :
State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:((«sshd»,pid=445,fd=3)) LISTEN 0 100 0.0.0.0:25 0.0.0.0:* users:((«master»,pid=929,fd=13)) LISTEN 0 128 *:3306 *:* users:((«mysqld»,pid=534,fd=30)) LISTEN 0 128 *:80 *:* users:((«apache2»,pid=765,fd=4),(«apache2»,pid=764,fd=4),(«apache2»,pid=515,fd=4)) LISTEN 0 128 [::]:22 [::]:* users:((«sshd»,pid=445,fd=4)) LISTEN 0 100 [::]:25 [::]:* users:((«master»,pid=929,fd=14)) LISTEN 0 70 *:33060 *:* users:((«mysqld»,pid=534,fd=33))
Проверьте порты прослушивания с помощью lsof
lsof — это мощная утилита командной строки, которая предоставляет информацию о файлах, открытых процессами.
В Linux все является файлом. Вы можете думать о сокете как о файле, который записывает в сеть.
Чтобы получить список всех прослушивающих TCP-портов с типом lsof :
sudo lsof -nP -iTCP -sTCP:LISTEN
Используются следующие параметры:
- -n — Не преобразовывать номера портов в имена портов.
- -p — Не разрешать имена хостов, показывать числовые адреса.
- -iTCP -sTCP:LISTEN — Показать только сетевые файлы с состоянием TCP LISTEN.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 445 root 3u IPv4 16434 0t0 TCP *:22 (LISTEN) sshd 445 root 4u IPv6 16445 0t0 TCP *:22 (LISTEN) apache2 515 root 4u IPv6 16590 0t0 TCP *:80 (LISTEN) mysqld 534 mysql 30u IPv6 17636 0t0 TCP *:3306 (LISTEN) mysqld 534 mysql 33u IPv6 19973 0t0 TCP *:33060 (LISTEN) apache2 764 www-data 4u IPv6 16590 0t0 TCP *:80 (LISTEN) apache2 765 www-data 4u IPv6 16590 0t0 TCP *:80 (LISTEN) master 929 root 13u IPv4 19637 0t0 TCP *:25 (LISTEN) master 929 root 14u IPv6 19638 0t0 TCP *:25 (LISTEN)
Большинство имен выходных столбцов говорят сами за себя:
- COMMAND , PID , USER — имя, pid и пользователь, запускающий программу, связанную с портом.
- NAME — номер порта.
Чтобы узнать, какой процесс прослушивает определенный порт, например порт 3306 вы должны использовать:
sudo lsof -nP -iTCP:3306 -sTCP:LISTEN
Выходные данные показывают, что сервер MySQL использует порт 3306 :
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 534 mysql 30u IPv6 17636 0t0 TCP *:3306 (LISTEN)
Для получения дополнительной информации посетите страницу руководства lsof и прочтите обо всех других мощных возможностях этого инструмента.
Выводы
Как узнать какие COM порты заняты
Найти занятые COM порты — важная задача для работы с периферийными устройствами на компьютере. В этой статье мы рассмотрим несколько способов проверки открытых портов на разных устройствах.
- Как посмотреть локальные порты на компьютере
- Как проверить открытые порты на устройствах под управлением Android
- Как посмотреть какие порты заняты на Linux
- Как настроить COM порт в Windows 10
- Полезные советы и выводы
Как посмотреть локальные порты на компьютере
Если вам нужно проверить открытые порты на компьютере под управлением Windows, выполните следующие шаги:
- Нажмите комбинацию клавиш Win+R.
- В появившемся окне введите команду CMD и нажмите Enter.
- В открывшемся окне командной строки введите команду netstat -a и нажмите Enter.
Вы увидите список всех открытых портов на вашем компьютере, включая TCP и UDP порты. Вы также можете проверить открытые порты на удаленном хосте, заменив IP-адрес в команде netstat на IP-адрес удаленного хоста.
Как проверить открытые порты на устройствах под управлением Android
Если вы хотите проверить открытые порты на устройстве под управлением Android, вы можете использовать специальное приложение. Например, приложение PortDroid позволяет проверить порты на доступность на вашем устройстве или удаленном хосте. Скачайте и запустите приложение, введите IP-адрес и номер порта, чтобы проверить его доступность.
Как посмотреть какие порты заняты на Linux
Если вам нужно проверить занятые порты на устройстве с операционной системой Linux, выполните следующие шаги:
- Откройте терминал.
- Введите команду lsof.
Команда lsof означает список открытых файлов и позволяет искать информацию о файлах, открытых разными процессами, включая порты. Вы увидите список открытых портов и соответствующих им процессов.
Как настроить COM порт в Windows 10
Если вы хотите открыть сетевой порт на компьютере под управлением Windows 10, выполните следующие шаги:
- Нажмите комбинацию клавиш Win+R.
- В появившемся окне введите firewall и нажмите Enter.
- В настройках Брандмауэра Windows перейдите по ссылке «Дополнительные параметры».
- В поле слева кликните на раздел «Правила для входящих соединений».
- В открывшемся окне выберите тип правила «Для порта» и нажмите «Далее».
Вы можете выбрать определенный порт, который нужно открыть, или разрешить входящие соединения для всех портов. Настоятельно рекомендуется выбрать определенный порт для большей безопасности.
Полезные советы и выводы
- Проверка занятых портов — важная задача для работы с периферийными устройствами на компьютере.
- В Windows и Linux вы можете использовать команду netstat и lsof соответственно, чтобы проверить открытые порты.
- Для проверки портов на устройствах Android существует специальное приложение.
- При открытии сетевого порта на компьютере под управлением Windows 10 следует выбирать определенный порт для большей безопасности.
Как определить какой COM порт занят
Узнать, какой порт COM уже занят, не составляет труда. Для этого нужно выполнить несколько простых действий. Сначала необходимо нажать на определенную комбинацию клавиш, чтобы открыть окно командной строки. Вводим команду «CMD» и нажимаем на Enter. Появившееся окно командной строки открываем.
Теперь можно ввести следующую команду: «netstat -a» и нажать Enter повторно. На экране вы увидите информацию о занятых портах (включая порты COM), а также о том, какие приложения их используют. Это позволит быстро определить, какие порты заняты и какие могут быть использованы на данном компьютере. Этот простой способ поможет вам избежать проблем с подключением устройств к портам, которые уже заняты другими приложениями.
Как посмотреть какие COM порты используются
Для того чтобы узнать, какие COM порты в данный момент используются на вашем компьютере, необходимо выполнить несколько простых действий. Сначала нужно найти меню Пуск на рабочем столе и открыть его. В строке поиска введите название Диспетчер устройств и выберите соответствующий результат. После этого откроется окно с наименованиями всех устройств, подключенных к компьютеру.
Для того чтобы увидеть, какие из них используют порты COM, раскройте вкладку Порты (COM и LPT). Здесь будут отображаться все COM порты, которые используются в данный момент. Если вы хотите отключить какой-то из них, то выберите нужное устройство, нажмите на правую кнопку мыши и выберите соответствующий пункт в меню. Таким образом, на вашем компьютере вы сможете в любой момент проверить, какие порты COM используются.
Для проверки занятости COM-портов на компьютере необходимо выполнить несколько простых действий. Сначала нужно нажать комбинацию клавиш Win+R, затем в появившемся окне ввести команду «cmd» и нажать клавишу Enter. Далее откроется окно командной строки, в которое необходимо ввести команду «netstat -a» и нажать клавишу Enter.
В результате на экране появится список всех занятых портов, включая COM-порты. Это позволит определить, какие именно порты заняты и какие устройства используются на компьютере. Таким образом, с помощью нескольких простых действий можно быстро и легко выявить занятые COM-порты и решить возможные проблемы с подключенными устройствами.
- Как посмотреть какие COM порты заняты
- Как определить какой COM порт занят
Источник: noutbuke.ru
Проверьте, какие порты и процессы запущены в Ubuntu 2 мин для чтения
П еред подключением к порту или отладкой вы должны знать, какие порты работают и какой процесс выполняется на этом порту. Иногда у вас также могут быть проблемы, такие как “port already in use”, и при необходимости вы должны знать, какой процесс использует этот порт, и при необходимости завершить его. Этого можно достичь, зная, какие порты используют разные процессы. Мы рассмотрим некоторые подходы к завершению работы в этом посте. Однако сначала давайте разберемся с некоторыми техническими словами, используемыми в этой статье.
Что такое порты?
Порты — это абстракция, которая может обмениваться данными между приложениями с использованием различных протоколов. Для протоколов транспортного уровня, таких как TCP, UDP и SMTP, используются порты. Различным службам назначается номер порта, например порт 80, используемый HTTP, порт 22, используемый SSH, и т. д. Использование номеров портов позволяет нескольким системам открывать множество сокетов через один и тот же транспортный протокол.
В приложении используются несколько портов и динамические порты 49152-65535. Первые 1024 порта (00-1023) — это системные порты, которые запрещают пользовательским программам вмешиваться в их работу, поскольку многие операционные системы резервируют эти порты для привилегированных функций.
Порты могут принимать и доставлять данные и находятся выше транспортного уровня модели OSI.
Что такое процессы?
По сути, процесс — это динамический экземпляр программы, который выполняется последовательно. Сущность, представляющая основную единицу работы, которая должна быть реализована в системе, указывается как процесс. Проще говоря, мы создаем наши компьютерные программы в текстовом файле, и он становится процессом, который выполняет все обязанности, указанные в программе, когда мы выполняем эту программу.
Давайте теперь посмотрим на методы проверки портов и процессов, запущенных в Ubuntu.
Метод 1. Использование команды netstat и grep
netstat
Команда netstat отображает состояние сети и статистику протокола. В зависимости от используемого параметра командной строки netstat показывает разные типы сетевых данных. Конечные точки TCP и UDP можно увидеть в таблицах, таблицах маршрутизации и форматах информации об интерфейсах.
Читать Как защитить SSH-сервер в Ubuntu 20.04 от базового до расширенного
grep
Grep анализирует файл и отображает каждую строку, которая содержит этот шаблон для определенного шаблона символов. Шаблон, который ищется в файле, называется регулярным выражением.
Используйте следующую команду, чтобы проверить, какой процесс запущен на порту. Вы должны указать порт в этой команде.
$ netstat -ltnp | grep -w ‘: 80’
Метод 2: список всех прослушивающих портов с помощью netstat
Используйте следующую команду для вывода списка всех прослушивающих портов TCP или UDP, включая те, которые используют порты и состояние сокета.
sudo netstat -tunlp
Метод 3: Использование команды ss
Команда ss — это утилита, используемая для дампа статистического сокета и отображения информации аналогично netstat. Кроме того, отображается TCP и информация о состоянии, чем в большинстве других инструментов. Это также немного быстрее, чем netstat.