- How to Use the Netstat Command on Mac
- See open ports and those in use
- What to Know
- How to Run Netstat
- Netstat Flags and Options
- Syntax
- Useful Flags
- Netstat Examples
- Accessing Netstat Through Network Utility
- Supplementing Netstat With Lsof
- Lsof Flags and Options
- lsof Examples
- Other Networking Commands
- Как использовать команду Netstat на Mac
- Запуск Netstat
- Флаги и опции Netstat
- Netstat Примеры
- Доступ к netstat через сетевую утилиту
- Дополнение netstat с помощью lsof
- флаги и опции
- Примеры
- Другие сетевые команды
How to Use the Netstat Command on Mac
See open ports and those in use
What to Know
- To run netstat and see detailed data about your Mac’s network, open a new Terminal window, type netstat, and press Enter.
- Limit netstat’s output with flags and options. To see netstat’s available options, type man netstat at the command prompt.
- Use the lsof command to make up for netstat’s missing or limited functionality, including displaying any files currently open in any apps.
This article explains how to run the netstat Terminal command in macOS so that you can see detailed information about your Mac’s network communications, including the ways your Mac is talking to the outside world, across all ports and all applications.
How to Run Netstat
Learning how to use netstat can help you understand the connections your computer is making and why. The netstat command is available on Macs by default. You don’t need to download or install it.
Go to Finder > Go > Utilities.
Double-click Terminal.
In the new Terminal window, type netstat and press Return (or Enter) to execute the command.
A huge amount of text will begin scrolling on your screen. If you don’t use any of the available flags (see below), netstat reports the active network connections on your Mac. Considering the number of functions a modern network device performs, you can expect the list to be lengthy. A standard report can run over 1,000 lines.
Netstat Flags and Options
Filtering netstat’s output is essential to understanding what’s happening on your Mac’s active ports. Netstat’s built-in flags allow you to set options, limiting the command’s scope.
To see all netstat’s available options, type man netstat at the command prompt to reveal netstat’s man (short for «manual») page. You can also view an online version of netstat’s man page.
Syntax
It’s important to note that netstat on macOS doesn’t work the same way as netstat on Windows and Linux. Using flags or syntax from those implementations of netstat may not result in the expected behavior.
To add flags and options to netstat on macOS, use the following syntax:
netstat [-AabdgiLlmnqrRsSvWx] [-c queue] [-f address_family] [-I interface] [-p protocol] [-w wait]
If the above shorthand looks completely incomprehensible, learn how to read command syntax.
Useful Flags
Here are some of the most commonly used flags:
- -a includes server ports in netstat’s output, which are not included in the default output.
- -g displays information associated with multicast connections.
- -Iinterface provides packet data for the specified interface. All available interfaces can be viewed with the -i flag, but en0 is typically the default outgoing network interface. (Note the lowercase letter.)
- -n suppresses the label of remote addresses with names. This speeds up netstat’s output while eliminating only limited information.
- -pprotocol lists traffic associated with a specific networking protocol. The full list of protocols is available at /etc/protocols, but the most important ones are udp and tcp.
- -r displays the routing table, showing how packets are routed around the network.
- -s shows the network statistics for all protocols, whether or not the protocols are active.
- -v increases verbosity, specifically by adding a column showing the process ID (PID) associated with each open port.
Netstat Examples
Consider these examples:
netstat -apv TCP
This command returns only TCP connections on your Mac, including open ports and active ports. It also uses verbose output, listing the PIDs associated with each connection.
netstat -a | grep -i «listen»
This combination of netstat and grep reveals open ports, which are ports that are listening for a message. The pipe character | sends the output of one command to another command. Here, the output of netstat pipes to grep, letting you search it for the keyword «listen» and find the results.
Accessing Netstat Through Network Utility
You also can access some of netstat’s functionality through the Network Utility app, which is included in macOS versions up to Catalina (it’s not included in Big Sur).
To get to Network Utility, type Network Utility into Spotlight Search to launch the app, then select the Netstat tab to access the graphical interface.
Options within Network Utility are more limited than those available through the command line. Each of the four radio button selections runs a preset netstat command and displays the output.
The netstat commands for each radio button are as follows:
- Display routing table information runs netstat -r.
- Display comprehensive network statistics for each protocol runs netstat -s.
- Display multicast information runs netstat -g.
- Display the state of all current socket connections runs netstat.
Supplementing Netstat With Lsof
The macOS implementation of netstat doesn’t include much of the functionality users expect and need. Although it has its uses, netstat isn’t as useful on macOS as it is on Windows. A different command, lsof, replaces much of the missing functionality.
Lsof displays files currently open in apps. You can also use it to inspect app-associated open ports. Run lsof -i to see the list of applications communicating over the internet. This is typically the goal when using netstat on Windows machines; however, the only meaningful way to accomplish that task on macOS is not with netstat, but with lsof.
Lsof Flags and Options
Displaying every open file or internet connection is typically verbose. That’s why lsof comes with flags for restricting results with specific criteria. The most important ones are below.
For information on more flags and technical explanations of each, check out lsof’s man page or run man lsof at a Terminal prompt.
- -i displays open network connections and the name of the process that is using the connection. Adding a 4, as in -i4, displays only IPv4 connections. Adding a 6 instead (-i6) displays only IPv6 connections.
- The -i flag also can be expanded to specify further details. -iTCP or -iUDP returns only TCP and UDP connections. -iTCP:25 returns only TCP connections on port 25. A range of ports can be specified with a dash, as it -iTCP:25-50.
- Using -i@1.2.3.4 returns only connections to the IPv4 address 1.2.3.4. IPv6 addresses can be specified in the same fashion. The @ precursor can also be used to specify hostnames in the same way, but both remote IP addresses and hostnames cannot be used simultaneously.
- -s typically forces lsof to display file size. But when paired with the -i flag, -s works differently. Instead, it allows the user to specify the protocol and status for the command to return.
- -p restricts lsof to a particular process ID (PID). Multiple PIDs can be set by using commons, such as -p 123,456,789. Process IDs can also be excluded with a ^, as in 123,^456, which would specifically exclude PID 456.
- -P disables the conversion of port numbers to port names, speeding up output.
- -n disables the conversion of network numbers to hostnames. When used with -P above, it can significantly speed up lsof’s output.
- —uuser only returns commands owned by the named user.
lsof Examples
Here are a few ways to use lsof.
lsof -nP -iTCP@lsof.itap:513
This complex-looking command lists the TCP connections with the hostname lsof.itap and the port 513. It also runs lsof without connecting names to IP addresses and ports, making the command run noticeably faster.
lsof -iTCP -sTCP:LISTEN
This command returns every TCP connection with the status LISTEN, revealing the open TCP ports on the Mac. It also lists the processes associated with those open ports. This is a significant upgrade over netstat, which lists PIDs at most.
sudo lsof -i -u^$(whoami)
Other Networking Commands
Other Terminal networking commands that might be of interest in examining your network include arp, ping, and ipconfig.
Источник
Как использовать команду 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.
Источник