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

Вопрос или проблема

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

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

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

lsof -i 4tcp:8080 -sTCP:LISTEN

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

lsof -i 4tcp:8080 -sTCP:LISTEN -Fp

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


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

используйте это:
netstat -p tcp -p udp

вместе с этим:
lsof -n -i4TCP -i4UDP

На мой вкус https://github.com/mezantrop/sockstat имеет легко запоминающиеся аргументы:

sudo sockstat -T -l

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

И если вы предпочитаете графический интерфейс:

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

Ответ или решение

Для того чтобы определить, какие процессы открыли TCP/IP порты на Mac OS X, вы можете воспользоваться несколькими инструментами и методами, каждый из которых имеет свои особенности и применимость в зависимости от предпочитаемого вами подхода к задаче.

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

Наиболее популярный и мощный инструмент для этих целей — утилита lsof (от "list open files"). Она позволяет показать список всех процессов с открытыми TCP IPv4 сетевыми сокетами. Используйте следующий командный синтаксис:

lsof -i 4tcp

Для определения процессов, использующих конкретный порт, например 8080, примените следующую команду:

lsof -i 4tcp:8080 -sTCP:LISTEN

Если вам нужно только PID процесса, вы можете сделать это с помощью опции -Fp:

lsof -i 4tcp:8080 -sTCP:LISTEN -Fp

Продвинутые параметры lsof

Для того чтобы получить список всех процессов, взаимодействующих с любым из специфических портов, например как TCP, так и UDP порт 53 и исключить разрешение IP-адресов и портов в имена хостов и сервисов, рекомендуется использовать:

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

Запуск lsof под пользователем root предоставит вам более полный список процессов.

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

netstat — это еще один полезный инструмент для получения информации о сетевых соединениях:

netstat -p tcp -p udp

Однако, для более современной информации, рекомендуется использовать lsof из-за устаревания некоторых функций netstat.

Инструмент sockstat

Утилита sockstat может быть удобна благодаря простоте использования:

sudo sockstat -T -l

GUI: Сетевая утилита Mac OS X

Если вы предпочитаете графический интерфейс, Mac OS X предоставляет утилиту "Network Utility", которая находится в папке /Applications/Utilities. Вы можете использовать вкладку "Netstat" для получения информации о сетевых соединениях в формате, удобном для чтения и анализа.

Информация, приведенная выше, охватывает основные методы для получения сведений о TCP/IP портах на Mac OS X. Эти инструменты и команды помогут вам эффективно управлять и мониторить сетевые подключения на вашем устройстве, обеспечивая надёжный способ контроля вашей системы.

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

Капча загружается...