Как узнать на каком порту работает программа
Перейти к содержимому

Как узнать на каком порту работает программа

  • автор:

Как проверить, какая именно программа работает с COM-портом компьютера

Сотрудники, офисы и COM-порты. Краткое введение в проблему

Иногда случается так, что при подключении сканера штрихкодов к программе Тирика-Магазин программа показывает сообщение об ошибке: Не могу открыть порт сканера штрихкодов: Отказано в доступе. Давайте разберемся, отчего такое может случиться.

С точки зрения Windows COM-порт, как и любой файл, флешка и т.п. является ресурсом. Любая программа, в т.ч. и сама Windows, может попросить у Windows доступ к какому-то ресурсу с определенными правами, и Windows может либо предоставить, либо не предоставить программе искомый доступ. Близкой аналогией здесь будет, наверное, офис с большим количеством комнат и кабинетов (ресурсов) и работающих в них сотрудников (программ). Если сотруднику для, например, переговоров с крупным клиентом потребуется отдельная комната, он попросит у секретаря организации дать ему ключ от этой комнаты и более никого туда не пускать до окончания переговоров. Если другой сотрудник попросит после этого у секретаря ключ от той же комнаты, ему будет отказано в доступе.

Точно так же дело обстоит и в мире программ. Если какой-то программе необходимо поработать с COM-портом, причем поработать так, чтобы ей никто в этом не мешал, программа просит Windows предоставить ей доступ к COM-порту и более никому этого доступа не предоставлять. Если после этого другая программа (например, программа Тирика-магазин) попросит у Windows доступа к (уже занятому) COM-порту, ей будет отказано в доступе.

Разумеется, это не единственная причина, по которой программе может быть отказано в доступе к COM-порту. Возвращаясь к нашей аналогии с офисом, сотруднику может быть отказано в доступе к какой-то комнате не только потому, что она занята другим сотрудником, но и потому, что эта комната, например, не существует или эта комната — кабинет директора. Однако при возникновении такой ситуации (программа Тирика-Магазин показывает на экране сообщение «Не могу открыть порт сканера штрихкодов: отказано в доступе») бывает нелишним проверить, что ни одна сторонняя программа не использует уже COM-порт в эксклюзивном режиме (сотрудник не занял комнату, на которую мы претендуем).

Так как все-таки проверить, какая именно программа работает с COM-портом компьютера

Для этого нам нужно скачать и установить на компьютер специальную программу, называемую Process Explorer. Вообще, процессом в Windows называют запущенную и работающую программу, так что название этой программы можно перевести как Исследователь запущенных программ. Пожалуйста, скачайте эту программу и запустите на своем компьютере. Вначале программа предложит вам согласиться с лицензионным соглашением (нужно нажать кнопку Agree, что переводится как Согласен) и потом немедленно покажет вам список запущенных на компьютере процессов:

Установка программы Process Explorer Главное окно программы Process Explorer

В этом окне нажмите, пожалуйста, сочетание клавиш Ctrl+F или выберите пункт меню Find | Find handle or DLL (Поиск | Искать хэндл или динамически подгружаемую библиотеку) для того, чтобы вызвать на экран окно поиска, в этом окне напишите слово Serial и нажмите кнопку Search (Искать). В ответ программа покажет вам список хэндлов (хэндлом в нашем примере про офис будет, наверное, запись о занятии комнаты у секретаря фирмы), в имени которых есть слово Serial («Последовательный». COM-порты также называются последовательными портами):

Окно поиска программы Process Explorer

Разумеется, это не будет список программ, занявших ваш COM-порт. По аналогии с офисом, мы запустили функцию поиска в компьютере секретаря фирмы и ввели в нее название комнаты — в результатах поиска может быть не только записи о резервировании этой комнаты, но и, например, запись о том, что в эту комнату нужно купить шторы. Также вероятна ситуация, когда при наличии резервирования этой комнаты мы ничего не найдем функцией поиска, например, потому, что секретарь в своих записях называет эту комнату по-другому, например, вместо «A123» она называет ее «Левая переговорная».

Кроме того, нам необходимо суметь прочитать то, что нашла нам функция поиска. Вот, например, третья строчка на рисунке выше — это запись о занятии COM-порта или нет? На самом деле это запись совсем о другом событии, но для того, чтобы это понять, нужно быть компьютерным специалистом — а у большинства читающих эту статью совсем другие образование и профессия. Поэтому мы рекомендуем вам просто максимально расширить окно поиска так, чтобы туда поместились все присутствующие в нем строчки и все присутствующие в нем тексты, сделать снимок экрана получившегося окна и прислать этот снимок экрана нам с комментарием типа: Пытаюсь использовать программу Тирика-Магазин совместо со сканером штрихкодов, получаю сообщение об ошибке , снимок окна поиска программы ProcessExplorer прилагаю. Письмо нужно отправлять на .

Как вы понимаете, отсылка нам описанного выше снимка экрана — это не панацея и не волшебный способ исправить любую ошибку в программе — это всего лишь попытка найти программу, занявшую COM-порт. Если эта попытка окажется удачной, это будет означать, что проблема, наверное, будет решена; если же попытка окажется неудачной, то это вообще ничего не означает, так как, например, в списке секретаря эта комната может называться иначе. Но ведь попытка не пытка, как говорил известный исторический персонаж? 😉

Как проверить, открыт ли порт

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

Что такое порт сервера и зачем он нужен

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

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

Один из наиболее распространенных способов проверить доступность порта – сделать это с помощью команды Telnet. Дальше расскажем, как именно это сделать.

Telnet: что это такое и как ей пользоваться

Что такое Telnet? Telnet – это сетевая утилита, позволяющая установить соединение с удаленным портом любого компьютера и каналом связи. Она работает по протоколу TELNET и позволяет им управлять. Сам протокол работает на основе TCP – то есть, можно передавать обычные строковые команды на другое устройство. Также его можно использовать для взаимодействия между процессами. Как правило, утилита установлена по умолчанию во всех системах. Если на вашем устройстве ее нет – воспользуйтесь и установите Telnet в одном из официальных репозиториев, например, в Ubuntu:

$ sudo apt install telnet

Общий синтаксис утилиты Telnet выглядит следующим образом:

$ telnet опции хост порт

Разберем по порядку, что здесь подразумевается.

Хост – это удаленный компьютер (домен или IP-адрес).

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

Опции необходимы, чтобы подключиться к удаленному серверу. Самые распространенные опции выглядят так:

  • -4 – использовать поддержку стандарта IPv4;
  • -6 – использовать поддержку стандарта IPv6;
  • -8 – использовать 8-битную кодировку – например, Unicode;
  • -E – отключить поддержку Escape-последовательностей;
  • -a – автоматический вход с логином из переменного окружения USER;
  • -b – использовать локальный сокет;
  • -d – использовать режим отладки;
  • -p – использовать эмуляцию rlogin;
  • -l – указать пользователя авторизации.

После подключения к удаленному серверу нужно ввести команды для управления процессами. Для этого у Telnet есть два режима:

  • Построчный – строка полностью редактируется на локальном компьютере и в готовом виде целиком отправляется на сервер.
  • Посимвольный – каждый символ, который вы набираете, отправляется на сервер. В этом случае не получится что-то исправить, если вы допустите ошибку при вводе.

Стандартные команды утилиты Telnet

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

  • CLOSE – отключить соединение с удаленным сервером;
  • ENCRYPT – передавать всю информацию в зашифрованном виде;
  • LOGOUT – выйти и закрыть соединение;
  • MODE – переключить режима со строчного на символьный или наоборот;
  • STATUS – показать текущий статус соединения;
  • SEND – отправить один из специальных символов telnet;
  • SET – установить значение параметра;
  • OPEN – открыть соединение с удаленным сервером;
  • DISPLAY – показать используемые спецсимволы;
  • SLC – изменить используемые спецсимволы.

Как проверить, открыт ли порт на удаленном компьютере, с помощью Telnet

Команда Telnet – отличный вариант, чтобы проверить доступность порта на удаленном компьютере. Как проверить доступность порта через Telnet? Чтобы это сделать, нужно ввести в командной строке одну из команд:

В командной строке Windows введите одну из команд:

telnet имя_сервера номер_порта или telnet IP_сервера номер_порта

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

Если вы видите пустое окно или появилось приглашение сервера, то порт открыт.

Также с Telnet можно посмотреть открытые порты linux:

  1. Запустите терминал комбинацией клавиш Ctrl+Alt+T
  2. Введите команду, чтобы установить утилиту: sudo apt install telnet
  3. После установки введите команду в терминале: telnet имя_сервера номер_порта
  4. Если появится ошибка, то порт закрыт. Если порт открыт, вы увидите сообщение Unable to connect to remote host.

Как проверить открытые порты на локальном компьютере

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

Как проверить порты в Windows, используя утилиту netstat:

  1. Введите комбинацию клавиш Win+R
  2. Задайте команду CMD и нажмите Enter
  3. Задайте команду netstat –a и нажмите Enter

После этого перед вами должен появиться список занятых портов, где также будет видно, какая программа его использует. Чтобы выгрузить файл и проверить его на наличие лишних приложений, задайте команду netstat –a >имя.txt.

Как еще можно проверить доступность порта

Онлайн-сервис ping.eu

Если вы не хотите использовать утилиты для проверки, есть онлайн-сервисы, которые помогут это сделать.

Один из таких сервисов – ping.eu. Это многофункциональный сервер, который позволяет быстро проверить открытые порты. Нужно зайти на сайт, выбрать вкладку Port check. Далее понадобится ввести IP-адрес и номер соединения, адрес пользователя будет определен автоматически. После этого нажмите Go и сервис покажет результат.

Специальные программы

Кроме онлайн-сервисов и встроенных утилит, можно воспользоваться для проверки портов отдельными приложениями. Их достаточно много, и они работают примерно по одному принципу, при необходимости вы можете найти подходящее для себя через поиск. Мы рассмотрим, как работает программа Portforward Network Utilities. Она является платной, но можно выбрать пробный режим. Кстати, эта программа поможет не только проверить порты, но и открыть их, если вам это нужно.

Как проверить порты с помощью Portforward Network Utilities

  1. Перейдите на сайт разработчика и скачайте приложение в разделе загрузок.
  2. Запустите приложение и выберите режим использования. Можно использовать бесплатный режим или оплатить на сайте – тогда нужно ввести регистрационный ключ.
  3. Откройте раздел Tools и выберите пункт Port Checker.
  4. Введите номер порта и выберите протокол передачи информации.
  5. Нажмите кнопку Check Me и дождитесь результатов сканирования.

Заключение

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

Как проверить использование портов компьютера через Windows 10

В любой момент между вашим ПК с Windows 10 и бесконечной пустотой Интернета передаётся огромное количество информации. Это делается с помощью технологий, посредством которых зависящие от сети процессы ищут свободные «порты» TCP и UDP для «общения» с Интернетом. Сначала ваши данные отправляются на удаленные порты пункта назначения или на веб-сайт, к которому ваши процессы пытаются подключиться, а затем они возвращаются на локальные порты обратно на ваш компьютер.

В большинстве случаев Windows 10 знает, как управлять портами и обеспечивать направление трафика через правильные порты, чтобы эти процессы могли подключаться к тому, что им нужно. Но, иногда два процесса могут быть назначены одному порту или вы, может быть, просто хотите получить лучшее представление о своём сетевом трафике и о том, что входит и выходит.

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

Использование портов – метод командной строки

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

  1. Откройте командную строку от имени администратора.
  2. Как только вы попадете в командную строку с повышенными привилегиями, введите следующую команду: netstat -ab

После этого будет постоянно появляться список портов, который, вероятно, довольно длинный, вместе с процессами Windows, которые их используют. (Вы можете нажать Ctrl + A , затем Ctrl + C чтобы скопировать всю информацию в буфер обмена.) На среднем компьютере будет два основных локальных IP-адреса, которые содержат порты на вашем ПК.

Проверка использования портов на компьютере с помощью командной строки

Большинство из адресов начинаются со 127.0.0.1. Этот IP-адрес иначе известен как «localhost» или «адрес обратной связи», и любой процесс, прослушивающий порты, взаимодействует внутри вашей локальной сети без использования какого-либо сетевого интерфейса. Фактический порт – это номер, который вы видите после двоеточия.

Большая часть процессов, вероятно, будет прослушивать порты с префиксом «192.168.xxx.xxx», который является вашим IP-адресом. Это означает, что процессы, которые вы видите в списке, прослушивают сообщения из удаленных Интернет-узлов (например, веб-сайтов). Опять же, номер порта – это номер после двоеточия.

Проверка портов в TCPView

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

Проверка использования компьютерных портов с помощью утилиты TCPView

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

Если вы найдёте процесс или соединение, которое хотите закрыть, просто щелкните этот процесс правой кнопкой мыши. Затем вы можете выбрать «Завершить процесс», что является той же функцией, что и в диспетчере задач Windows. Или вы можете нажать «Закрыть соединение», чтобы оставить процесс открытым, но не давать ему прослушивать данный порт.

Как узнать, какой процесс использует тот или иной порт

Иногда полезно знать, какой процесс занял тот или иной порт, например, порт 80. В этой статье будет рассказано, как это сделать в Linux.

Решить поставленную задачу можно с помощью одной из команд — netstat, fuser и lsof. Также можно использовать псевдофайловую систему /proc (однако это менее удобный способ и мы его рассматривать не будем). Далее будут показаны примеры использования этих команд.

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

Представим, что нам нужно найти процесс, использующий порт 80. Попробуем сделать это с помощью netstat.

1.png

Определяем процесс, использующий порт 80 с помощью netstat

В данном случае видно, что порт 80 используется процессом apache2. 11681 — это PID процесса. Получить дополнительную информацию о процессе можно командами:

2.png

Информация о процессе

Можно также ввести команду ps -ax | grep apache2 для того, чтобы узнать, какие процессы с именем apache2 еще запущены.

3.png

Список процессов apache2

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *