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

Оглавление:

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

Что нужно знать

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

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

Как запустить Netstat

Узнав, как использовать netstat, вы сможете понять, какие соединения устанавливает ваш компьютер и почему. Команда netstat доступна на компьютерах Mac по умолчанию. Вам не нужно скачивать или устанавливать его.

Чтобы запустить netstat:

  1. Перейти к Finder > Перейти > Утилиты.

    Image
    Image
  2. Двойной щелчок Терминал.

    Image
    Image
  3. В новом окне терминала введите netstat и нажмите Return (или Enter) для выполнения команды.

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

    Image
    Image

Флаги и параметры Netstat

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

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

Синтаксис

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

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

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

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

Полезные флаги

Вот некоторые из наиболее часто используемых флагов:

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

  • - I предоставляет пакетные данные для указанного интерфейса. Все доступные интерфейсы можно просмотреть с флагом - i, но en0 обычно является исходящим сетевым интерфейсом по умолчанию. (Обратите внимание на строчную букву.)
  • - n подавляет метку удаленных адресов с именами. Это ускоряет вывод netstat, удаляя только ограниченную информацию.
  • - p протокол перечисляет трафик, связанный с определенным сетевым протоколом. Полный список протоколов доступен по адресу /etc/protocols, но наиболее важными из них являются udp и tcp..
  • - r отображает таблицу маршрутизации, показывающую, как пакеты маршрутизируются по сети.
  • - s показывает сетевую статистику для всех протоколов, независимо от того, активны ли протоколы.
  • - v увеличивает уровень детализации, в частности, добавляя столбец, показывающий идентификатор процесса (PID), связанный с каждым открытым портом.

Примеры Netstat

Рассмотрите эти примеры:

netstat -apv TCP

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

netstat -a | grep -i "слушай"

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

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

Вы также можете получить доступ к некоторым функциям netstat через приложение Network Utility, которое включено в версии macOS до Catalina (оно не включено в Big Sur).

Чтобы перейти к Network Utility, введите Network Utility в поиск Spotlight, чтобы запустить приложение, затем выберите вкладку Netstat, чтобы получить доступ к графический интерфейс.

Image
Image

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

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

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

Дополнение Netstat с помощью Lsof

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

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

Image
Image

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

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

Для получения информации о дополнительных флагах и технических пояснениях по каждому из них посетите справочную страницу lsof или запустите man lsof в командной строке терминала.

  • - i отображает открытые сетевые соединения и имя процесса, использующего это соединение. Добавление 4, как в - i4, отображает только соединения IPv4. Добавление 6 вместо (- i6) отображает только соединения IPv6.
  • Флаг - i также может быть расширен для указания дополнительных деталей. -iTCP или -iUDP возвращает только соединения TCP и UDP. -iTCP:25 возвращает только TCP-подключения через порт 25. Диапазон портов можно указать с помощью тире, так как -iTCP:25-50.
  • Использование [email protected] возвращает только подключения к 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 user возвращает только команды, принадлежащие указанному пользователю.

lsиз примеров

Вот несколько способов использования lsof.

lsof -nP [email protected]:513

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

lsof -iTCP -sTCP:LISTEN

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

Image
Image

sudo lsof -i -u^$(whoami)

Image
Image

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

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

Рекомендуемые: