Mac os узнать кто занял порт

Как мне узнать, какое приложение использует какой порт?

Я смотрел на вывод netstat на MacBook. Я заметил, что некоторые приложения позволяют вам указать, какой порт он использует. Например, utorrent позволяет вам сделать это. Я выбрал порт 55743, затем запустил netstat | grep 55743 и вывод был следующий.

Когда я utorrent порт освобождается. Но, если я не знал номер порта, то как я могу узнать, какое приложение использует какой порт? И возможно ли, чтобы некоторые приложения тайно использовали порты для связи с устройствами внешних серверов?

2 ответа 2

Как отметил Дэвид Хоуд, lsof -i — ваш друг, дает вам снимок текущих соединений / операций с сокетами . К сожалению, в OS X netstat не поддерживает эту функцию.

Другие варианты включают в себя:

Activity Monitor.app позволяет просматривать файлы и порты, открытые приложением. Это можно сделать, дважды щелкнув по процессу и открыв вкладку «Открыть файлы и порты».

Dtrace — проверьте скрипт soconnect, который дает вам непрерывную информацию о сетевых операциях, пока вы не выйдете (control+c). Пример вывода:

Одно приложение, которое мне лично очень нравится, это немного стукач, но это коммерческое программное обеспечение. Хотя это программное обеспечение брандмауэра для настольных компьютеров, у него есть ряд функций, которые могут быть вам интересны:

  • сетевой монитор, который сообщает, какие приложения куда подключаются (аналогично выходу soconnect.d)
  • захватывать сетевой трафик для каждого приложения (т. е. аналогично wireshark, вы можете наблюдать за сетевым трафиком, но ограничивать его только конкретным приложением)

Чтобы ответить на ваш второй вопрос — да, в традиционных операционных системах (например, OS X, Windows) приложения имеют возможность подключаться к сторонним системам различными способами и отправлять что угодно. Ряд брандмауэров настольных компьютеров пытаются решить эту проблему, позволяя указать, к чему может подключаться каждое приложение, создавая своего рода белый список. Как и все остальное в сфере безопасности, этот подход не лишен недостатков.

пс. У меня нет связи с поставщиками брандмауэров для настольных компьютеров 🙂

Источник

Как использовать команду Netstat на Mac

Команда netstat в macOS – это команда терминала, которая используется для отображения подробной информации о сетевых коммуникациях вашего Mac. Сетевые коммуникации включают в себя все способы общения вашего Mac с внешним миром через все порты и все приложения. Освоив netstat, пользователи Mac могут быстро понять, какие соединения устанавливает их компьютер и почему.

Запуск Netstat

Команда netstat доступна на Mac по умолчанию. Это не должно быть загружено или установлено.

Чтобы запустить netstat, откройте окно терминала. Если вы не знакомы с терминалом, его можно найти по адресу /Applications/Utilities/Terminal.app. Введите netstat и нажмите Enter , чтобы выполнить команду.

Вы заметите, что огромное количество загадочного текста начнет прокручиваться на вашем экране. Это нормально и ожидаемо. Без каких-либо дополнительных опций netstat сообщит обо всех активных сетевых подключениях на вашем Mac. Учитывая количество функций, которые выполняет современное сетевое устройство, вы можете ожидать, что список будет длинным. Стандартный отчет netstat может содержать более 1000 строк.

Читайте также:  Как отключить все службы узла windows 10

Фильтрация вывода netstat необходима для понимания того, что происходит на активных портах Mac. Вы можете фильтровать вывод netstat с помощью встроенных флагов. Эти флаги позволяют вам устанавливать параметры, ограничивая область действия и вывод netstat.

Флаги и опции Netstat

Чтобы увидеть все доступные параметры netstat, введите в командной строке man netstat. Это покажет справочную страницу netstat. Вы также можете просмотреть онлайн-версию справочной страницы netstat.

netstat [- AabdgiLlmnqrRsSvWx ] [ -c очередь ] [ -f address_family ] [ -I интерфейс ] [ -p протокол ] [ – w ждать ]

Netstat в macOS не работает так же, как netstat в Windows или netstat в Linux. Использование флагов или синтаксиса из этих реализаций netstat может не привести к ожидаемому поведению.

Если приведенное выше сокращение выглядит совершенно непонятным, научитесь читать синтаксис команды.

-r отображает таблицу маршрутизации, показывающую, как пакеты маршрутизируются по сети.

-p протокол перечисляет трафик, связанный с конкретным сетевым протоколом. Хотя полный список протоколов можно найти в/etc/protocol, наиболее важными из них являются udp и tcp.

-v увеличивает детализацию, в частности, добавляя столбец, показывающий идентификатор процесса (PID), связанный с каждым открытым портом.

-I интерфейс предоставляет пакетные данные для указанного интерфейса. Все доступные интерфейсы можно просматривать с флагом -i, но en0 обычно является исходящим сетевым интерфейсом по умолчанию. Обратите внимание на строчную букву.

-g отображает информацию, связанную с многоадресными подключениями.

-s показывает статистику сети для всех протоколов, независимо от того, активны они или нет.

-n подавляет пометку удаленных адресов именами. Это значительно ускоряет вывод netstat, жертвуя только ограниченной информацией.

-a включает порты сервера в вывод netstat, которые не включены в вывод по умолчанию.

Netstat Примеры

Чтобы применить наше понимание на практике, давайте рассмотрим некоторые примеры netstat.

Эта команда вернет только TCP-соединения на вашем Mac, включая открытые и активные порты. Он также будет использовать подробный вывод с перечислением PID, связанных с каждым соединением.

Эта комбинация netstat и grep покажет открытые порты на вашем Mac. Открытые порты – это порты, которые прослушивают сообщение. Если вы не знакомы с синтаксисом, символ канала | используется для отправки вывода одной команды другой команде. Мы направляем вывод netstat в grep, что позволяет нам искать его по ключевому слову «listen» и находить наши результаты.

Доступ к netstat через сетевую утилиту

В дополнение к полнофункциональному использованию через интерфейс командной строки терминала, некоторые функции netstat также доступны через приложение Network Utility. Это встроенное приложение macOS можно найти по адресу/Applications/Utilities/Network Utility.app. Откройте приложение и нажмите вкладку Netstat , чтобы получить доступ к графическому интерфейсу netstat.

Параметры в Network Utility явно гораздо более ограничены, чем те, которые доступны через командную строку. Четыре переключателя выбора просто запускают предустановленную команду netstat и отображают вывод на экране ниже.

Команды netstat для каждого переключателя следующие:

  • Показать информацию о таблице маршрутизации запускает netstat -r
  • Показать исчерпывающую статистику сети для каждого протокола : запустите netstat -s.
  • Показать информацию о многоадресной рассылке запускает netstat -g
  • Показать состояние всех текущих соединений с сокетами запускает netstat

Дополнение netstat с помощью lsof

Дело в том, что реализация netstat в macOS не включает в себя большую часть функций, ожидаемых и нужных пользователям. Несмотря на то, что он имеет свои применения, netstat не так полезен в macOS, как в Windows. Другая команда, lsof, может заменить большую часть отсутствующей функциональности.

Читайте также:  Сканирование локальной сети линукс

lsof отображает любые файлы, открытые в настоящее время любыми приложениями. Это также можно использовать для проверки открытых портов, связанных с приложениями. Запустите lsof -i, и вы увидите список всех приложений, общающихся через Интернет. Обычно это является целью при использовании netstat на компьютерах с Windows. Однако единственный значимый способ выполнить эту задачу в macOS – это не netstat, а lsof.

Отображение каждого открытого файла или подключения к Интернету часто является многословным. Вот почему в lsof есть несколько флагов для ограничения результатов по определенным критериям. Есть много полезных флагов, которые расширяют утилиту команды. Самые важные из них приведены ниже. Для дополнительного чтения, включая дополнительные флаги и технические пояснения по реализации каждого флага, обратитесь к справочной странице lsof или запустите man lsof в командной строке терминала.

флаги и опции

-i отображает все открытые сетевые подключения и имя процесса, который использует подключение. Добавление 4, как в -i4 , приведет к отображению только подключений IPv4. Если вместо этого добавить 6 ( -i6 ), будут отображаться только соединения IPv6.

Флаг -i также может быть расширен для уточнения деталей. -iTCP или -iUDP будут возвращать только соединения TCP и UDP. -iTCP: 25 будет возвращать только TCP-соединения через порт 25. Диапазон портов может быть указан с дефисом, как это -iTCP: 25-50.

Использование -i@1.2.3.4 вернет только подключения к IPv4-адресу 1.2.3.4. IPv6-адреса могут быть указаны таким же образом. Прекурсор @ также можно использовать для одинакового указания имен хостов, но нельзя использовать одновременно удаленные IP-адреса и имена хостов.

-s обычно заставляет lsof отображать размер файла. Но в сочетании с флагом -i , -s работает по-другому. Вместо этого он позволяет пользователю указать протокол и статус для команды, которую необходимо вернуть.

-p ограничивает lsof определенным идентификатором процесса (PID). Несколько идентификаторов PID могут быть установлены с помощью общих, таких как -p 123 456 789. Идентификаторы процесса также могут быть исключены с помощью ^, как в 123, ^ 456, что, в частности, исключает PID 456.

-P отключает преобразование номеров портов в имена портов, ускоряя вывод.

-n отключает преобразование сетевых номеров в имена хостов. При использовании с -P выше, это может значительно ускорить вывод lsof.

u пользователь возвращает только команды, принадлежащие указанному пользователю.

Примеры

Как и netstat, просмотр некоторых примеров из lsof поможет отработать наше понимание.

Эта сложная команда выводит список всех TCP-соединений с именем хоста lsof.itap и портом 513. Он также будет запускать lsof без подключения имен к IP-адресам и портам, что значительно ускоряет выполнение команды.

Это вернет каждое TCP-соединение со статусом LISTEN . Это показывает все открытые порты TCP на вашем Mac. В нем также перечислены процессы, связанные с этими открытыми портами. Это значительное обновление по сравнению с netstat, в котором перечислены не более PID.

Возвращает все соединения not , принадлежащие текущему вошедшему в систему пользователю. Эта команда немного отличается от других, поэтому мы разберем ее подробно.

Каретка ^ используется для отрицания. Все, что соответствует тексту после каретки, будет удалено из результатов. Мы получаем имя текущего пользователя, выполнив команду whoami внутри команды lsof, в окружении $ () , чтобы lsof мог получить доступ к своим выводам в виде текста. Запуск с помощью sudo позволяет увидеть задачи, которые не принадлежат вам. Выполнение этой команды без sudo вернет пустой список.

Читайте также:  Have two active windows

Другие сетевые команды

Другие сетевые команды терминала, которые могут представлять интерес для проверки вашей сети, включают arp, ping и ipconfig.

Источник

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

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

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

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

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

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

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

В следующем примере кода перечислены все запущенные TCP-серверы на вашем локальном компьютере с OSX:

LISTEN показывает только сокеты, прослушивающие соединения. То есть серверы.

Первая строка показывает сервер , привязанные к localhost , он же 127.0.0.1 , порт 2022 . Он будет отвечать на локальные запросы, но не на интернет-запросы.

Вторая строка — это сервер, связанный со всеми адресами, т. Е. * Порт 3141 . Он будет отвечать на запросы Интернет.

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

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

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

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

Источник

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

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

5 ответов 5

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

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

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

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

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

В следующем примере кода перечислены все запущенные TCP-серверы на вашем локальном компьютере с OSX:

LISTEN показывает только сокеты, прослушивающие соединения. То есть серверы.

Первая строка показывает сервер, связанный с localhost , он же 127.0.0.1 , порт 2022 . Он будет отвечать на локальные запросы, но не на интернет-запросы.

Вторая строка — это сервер, связанный со всеми адресами, т.е. * , порт 3141 . Он будет отвечать на запросы Интернет.

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

Источник

Оцените статью