- Как узнать, какие процессы имеют открытые порты TCP / IP в Mac OS X?
- Как использовать команду Netstat на Mac
- Запуск Netstat
- Флаги и опции Netstat
- Netstat Примеры
- Доступ к netstat через сетевую утилиту
- Дополнение netstat с помощью lsof
- флаги и опции
- Примеры
- Другие сетевые команды
- Как использовать сканер портов в сетевой утилите Mac OS X
- Сканировать порты по IP или домену из Mac OS X
Как узнать, какие процессы имеют открытые порты 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.
Источник
Как использовать команду Netstat на Mac
Команда netstat в macOS – это команда терминала, которая используется для отображения подробной информации о сетевых коммуникациях вашего Mac. Сетевые коммуникации включают в себя все способы общения вашего Mac с внешним миром через все порты и все приложения. Освоив netstat, пользователи Mac могут быстро понять, какие соединения устанавливает их компьютер и почему.
Запуск Netstat
Команда netstat доступна на Mac по умолчанию. Это не должно быть загружено или установлено.
Чтобы запустить netstat, откройте окно терминала. Если вы не знакомы с терминалом, его можно найти по адресу /Applications/Utilities/Terminal.app. Введите netstat и нажмите Enter , чтобы выполнить команду.
Вы заметите, что огромное количество загадочного текста начнет прокручиваться на вашем экране. Это нормально и ожидаемо. Без каких-либо дополнительных опций netstat сообщит обо всех активных сетевых подключениях на вашем Mac. Учитывая количество функций, которые выполняет современное сетевое устройство, вы можете ожидать, что список будет длинным. Стандартный отчет netstat может содержать более 1000 строк.
Фильтрация вывода 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 вернет пустой список.
Другие сетевые команды
Другие сетевые команды терминала, которые могут представлять интерес для проверки вашей сети, включают arp, ping и ipconfig.
Источник
Как использовать сканер портов в сетевой утилите Mac OS X
Mac OS X поставляется со встроенным сканером портов, просто одним из множества функций, заправленных в когда-либо полезное приложение Network Utility. Это означает, что вам не нужно беспокоиться о командной строке или устанавливать более сложные инструменты, такие как nmap, для быстрого сканирования открытых портов в заданном IP или домене, вместо этого вы можете сделать это через дружественный графический интерфейс. Несмотря на то, что это довольно продвинутая утилита, на самом деле она очень проста в использовании.
Быстрое оповещение: помните, что более новые версии OS X переместили Network Utility для захоронения в системной папке, это не значит, что ее нельзя использовать, это просто означает, что вам нужно либо сделать псевдоним, либо запустить его из Spotlight, или получить от него информацию о системе. В целях этого пошагового руководства мы будем использовать Spotlight для запуска Network Utility и запуска сканирования, поскольку это самый простой и быстрый маршрут, хотя, если вы планируете часто использовать инструмент, вы, вероятно, захотите сделать псевдоним самостоятельно. Хорошо, давайте перейдем к сканирующим портам.
Сканировать порты по IP или домену из Mac OS X
Вы можете выбрать любой локальный или удаленный IP-адрес для сканирования, если вы одиноки в сети (или даже воздушно-gapped) и все еще хотите попробовать это самостоятельно, используйте в качестве цели IP-адрес «127.0.0.1»:
- Hit Command + Spacebar для вызова Spotlight и введите «Network Utility», а затем ключ возврата для запуска приложения Network Utility
- Выберите вкладку «Сканирование портов»
- Введите IP-адрес или доменное имя, которое вы хотите отсканировать для открытых портов, и выберите «scan»
- Необязательно, но не обязательно рекомендуется, вы можете установить диапазон портов для сканирования между ними, если вы просто хотите найти определенный набор активных служб
127.0.0.1 или «localhost» будет просто проверять локальный Mac для открытых портов, если вы новичок в сканировании портов, что может быть предпочтительным способом, поскольку наиболее разумно хорошо защищенные удаленные домены отклоняют входящие запросы или не реагируют на них ,
Пусть запущен инструмент сканирования портов, и вы быстро начнете видеть любые открытые порты TCP и их традиционно идентифицированное использование. Например, вы можете увидеть что-то вроде этого, если вы сканируете localhost (127.0.0.1):
Началось сканирование портов …
Хост порта сканирования: 127.0.0.1
Открыть TCP-порт: 22 ssh
Открыть TCP-порт: 80 http
Открытый TCP-порт: 88 kerberos
Открыть TCP-порт: 445 microsoft-ds
Открытый TCP-порт: 548 afpovertcp
Открыть TCP-порт: 631 ipp
Открыть TCP-порт: 3689
Видимые порты будут отличаться для каждой машины в зависимости от того, какие сервисы и серверы доступны, но если вы сканируете Mac и ПК, вы обычно найдете веб-серверы, SMB-порт для совместного использования Windows 445, AFP Apple File Sharing на порту 548, возможно, активный видимый SSH-сервер на 22, UDP-серверах и, возможно, множество других. Сканирование порта будет довольно высоким, поскольку оно сканирует, поэтому просто отпустите его, если вы хотите увидеть все.
Если вы видите абсолютно ничего, но вы знаете, что IP активен с открытыми службами, либо машина не транслируется, машина-получатель отклоняет все запросы, либо может быть настроен сильный брандмауэр. Это делает портативный сканер Network Utility отличным способом быстро проверить безопасность и проверить потенциальные уязвимости или активные службы на соседних компьютерах Mac, iOS, Windows, Linux-машинах и других компьютерах.
Сетевая утилита, очевидно, ограничена Mac, и, хотя на стороне iOS нет встроенных инструментов, можно выполнить сканирование портов с iPhone и iPad с помощью приложения для пальцев — бесплатный инструмент, который очень удобно дополняет расширенный набор инструментов для пользователей iOS.
Источник