Как узнать, какие процессы имеют открытые порты TCP / IP в Mac OS X?

Ответы:

22

Одной из альтернатив является использование lsofутилиты; в частности, lsof -i 4tcpбудут перечислены все процессы с открытыми сетевыми сокетами TCP IPv4. Страница man lsofпредоставит вам подробную информацию о том, как использовать утилиту и как интерпретировать вывод.

Аяз
источник
9

Если вас интересует конкретный порт, вы можете использовать этот пример:

lsof -i 4tcp:8080 -sTCP:LISTEN

Если вы хотите получить только идентификатор процесса, вы можете запустить это:

lsof -i 4tcp:8080 -sTCP:LISTEN -Fp
Жолт Балог
источник
1

Я использую приведенную ниже команду, когда хочу увидеть все, что находится на определенном порте для TCP или UDP. Этот -nпараметр отключает попытки преобразования IP-адресов в доменные имена, а также -Pотключает попытки выяснить имя определенного порта. Кроме того, выполнение as rootпокажет вам больше процессов, чем обычного пользователя.

sudo lsof -iTCP:53 -iUDP:53 -n -P

М. Скотт Форд
источник
0

В следующем примере кода перечислены все запущенные 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
johntellsall
источник
3
Но netstatна хостах, основанных на BSD, нет никакой информации о процессе ... вот в чем вопрос.
Тонин
-1

Это должно быть возможно в окне терминала с помощью команды Netstat .

И если вам больше нравится GUI:

В Mac OS X 10.5 папка / Applications / Utilities содержит сетевую утилиту под названием: Network Utility, см. На вкладке Netstat эти статистические данные, представленные в приложении графического интерфейса, а также Ping, Lookup, Traceroute, Whois, Finger и Port Scan.

fretje
источник
2
netstat в OS X не имеет опций для перечисления процессов, к которым присоединены сокеты.
Стив Фолли