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

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

Запуск Netstat

Команда netstat доступна на Mac по умолчанию. Вам не нужно скачивать или устанавливать его.

Чтобы запустить netstat, откройте окно терминала по адресу применение > коммунальные услуги > терминал, Тип NetStat и нажмите вводить выполнить команду.

вакила / Getty Images

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

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

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

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

«Человек» — это сокращение от «руководство».

Синтаксис

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

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

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

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

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

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

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

Примеры Netstat

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

netstat -apv TCP

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

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

Это сочетание NetStat и GREP показывает открытые порты — порты, которые ожидают сообщения. Характер трубы | отправляет вывод одной команды другой команде. Здесь вывод NetStat трубы к GREP, что позволит вам выполнить поиск по ключевому слову "слушать" и найти результаты.

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

Вы также можете получить доступ к некоторым из netstat's функциональность через приложение Network Utility по адресу Платформа > Библиотека > CoreServices > применение.

Нажмите 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 поставляется с флагами для ограничения результатов по определенным критериям. Самые важные из них — ниже.

Для получения информации о дополнительных флагах и технических пояснениях каждого из них, посетите страницу руководства 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-адреса. @Preursor также можно использовать для указания имен хостов таким же образом, но и удаленные IP-адреса, и имена хостов не могут использоваться одновременно.
  • -s обычно заставляет lsof отображать размер файла. Но в паре с -i флаг, -s работает иначе. Вместо этого он позволяет пользователю указать протокол и статус для возврата команды.
  • -p ограничивает lsof определенным идентификатором процесса (PID). Несколько PID могут быть установлены с помощью общих символов, например -p 123,456,789. Идентификаторы процесса также могут быть исключены с помощью символа ^, например, 123, ^ 456, что специально исключает PID 456.
  • -P отключает преобразование номеров портов в имена портов, ускоряя вывод.
  • -n отключает преобразование сетевых номеров в имена хостов. При использовании с -P выше, это может значительно ускорить вывод lsof.
  • u user возвращает только команды, принадлежащие указанному пользователю.

lsof Примеры

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

lsof -nP [email protected]: 513

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

lsof -iTCP -sTCP: СЛУШАТЬ

Эта команда возвращает каждое TCP-соединение со статусом СЛУШАТЬ, показывая все открытые порты TCP на вашем Mac. В нем также перечислены процессы, связанные с этими открытыми портами. Это значительное обновление по сравнению с NetStat, в котором перечислены не более PID.

sudo lsof -i -u ^ $ (уами)

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

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

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

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