Ответы:
Если вас интересует конкретный порт, вы можете использовать этот пример:
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 .
И если вам больше нравится GUI:
В Mac OS X 10.5 папка / Applications / Utilities содержит сетевую утилиту под названием: Network Utility, см. На вкладке Netstat эти статистические данные, представленные в приложении графического интерфейса, а также Ping, Lookup, Traceroute, Whois, Finger и Port Scan.
netstatна хостах, основанных на BSD, нет никакой информации о процессе ... вот в чем вопрос.