Как определить внешний порт из PID

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

Пример желаемого результата:

www-data/apache = 80 my-awesome-game = 2023 

  • Поиск локальных процессов, запускающих TCP-соединения
  • Linux fedora - пакет httpd и маршрутизатор, как заставить его работать?
  • ssh будет временно приостановлено на быстрое соединение
  • вывод сценария журнала в файл и терминал одновременно
  • Определение того, какой процесс связан с портом
  • Использование Wireshark в Linux для отслеживания связанных HTTP-запросов и HTTP-ответа
  • SSH-подобный сеанс, который выживает при отключении физической сети
  • Как настроить OpenVPN для ожидания медленных прокси SOCKS?
  • 2 Solutions collect form web for “Как определить внешний порт из PID”

    я хотел бы использовать

     # netstat -anp 

    Параметр -p показывает связанный PID и имя программы, к которой принадлежит соответствующий сокет. Вам просто нужно выполнить grep вывод, чтобы фильтровать только нужные вам строки (по PID или имени программы).

    Аналогично netstat, lsof также мог бы сделать трюк:

     lsof -i 

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

    Преимущество, которое я вижу в использовании lsof, заключается в том, что «-p» в netstat не работает для всех Unix-аксессуаров, мне удается управлять AIX, Solaris и HP-UX (помимо Red Hat) и использовать lsof, потому что все параметры одинаковы, хотя некоторые функции не работают должным образом (т. е. наличие проприетарных и нестандартных файловых систем может вызвать проблемы с поиском имен файлов или другой информации).

    Linux и Unix - лучшая ОС в мире.