Skip to main content

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

Команды PING и TRACERT. Как проверить работоспособность сети? (Май 2024)

Команды PING и TRACERT. Как проверить работоспособность сети? (Май 2024)
Anonim

Команда 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 в командной строке. Это покажет man-страницу netstat. Вы также можете просмотреть онлайн-версию страницы netstat.

NetStat -AabdgiLlmnqrRsSvWx очередь -f address_family интерфейс -п протокол -w Подождите

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

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

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

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

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

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

отображает информацию, связанную с многоадресными соединениями.

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

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

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

Примеры Netstat

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

netstat -apv TCP

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

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

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

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

Помимо полнофункционального использования через интерфейс командной строки Terminal, некоторые функции 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 поставляется с рядом флагов для ограничения результатов по определенным критериям. Существует много полезных флагов, расширяющих утилиту команды. Самые важные из них ниже. Для дополнительного чтения, в том числе дополнительных флагов и технических объяснений реализации каждого флага, проверьте man-страницу lsof или запустите человек lsof в командной строке терминала.

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

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

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

Использование [email protected] вернет только соединения с адресом IPv4 1.2.3.4. Адреса IPv6 могут быть указаны одинаково. Предшественник @ также может использоваться для указания имен хостов таким же образом, но как удаленные IP-адреса, так и имена хостов не могут использоваться одновременно.

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

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

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

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

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

Примеры

Как и netstat, некоторые примеры lsof помогут нам понять наше понимание.

lsof -nP [email protected]: 513

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

lsof -iTCP -sTCP: LISTEN

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

sudo lsof -i -u ^ $ (whoami)

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

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

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

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