Відповіді:
Якщо вас цікавить конкретний порт, ви можете скористатися цим прикладом:
lsof -i 4tcp:8080 -sTCP:LISTEN
Якщо ви хочете отримати лише ідентифікатор процесу, ви можете запустити це:
lsof -i 4tcp:8080 -sTCP:LISTEN -Fp
Я використовую команду нижче, коли хочу побачити все, що знаходиться на певному порту для TCP або UDP. Цей -n
параметр вимикає спробу вирішення IP-адрес у доменних іменах, а -P
інвалід намагається з'ясувати ім'я конкретного порту. Крім того, запуск as root
покаже вам більше процесів, ніж звичайний користувач.
sudo lsof -iTCP:53 -iUDP:53 -n -P
У наведеному нижче прикладі коду перелічені всі запущені TCP-сервери на вашій локальній машині OSX:
netstat -a -Ptcp | egrep 'tcp4.*LISTEN'
tcp4 0 0 127.0.0.1.2022 *.* LISTEN 0 0
tcp4 0 0 *.3141 *.* LISTEN 0 0
LISTEN
показує лише розетки, які прослуховують з'єднання. Тобто сервери.
Перший рядок показує сервер, прив’язаний до localhost
, наприклад 127.0.0.1
, порту 2022
. Він відповість на місцеві запити, але не на Інтернет-запити.
Другий рядок - це сервер, прив'язаний до всіх адрес, тобто до *
порту 3141
. Він буде відповідати на запити Інтернет.
Щоб перелічити порти, які використовуються клієнтами та серверами, використовуйте наступне:
netstat -an -Ptcp | grep tcp4
Це повинно бути можливим у вікні терміналу за допомогою команди Netstat .
І якщо вам більше подобається графічний інтерфейс:
У Mac OS X 10.5 папка / Applications / Utilities містить мережеву утиліту під назвою: Network Utility, див. Вкладку Netstat щодо цих статистичних даних, представлених у додатку gui, разом із Ping, Lookup, Traceroute, Whois, Finger та Port Scan.
netstat
на хостах, що базуються на BSD, не вказано жодної інформації про процес ... про це було питання.