Введение

Инструмент статистики сети командной строки

В вычислительной технике netstat (сетевая статистика) — это сетевая утилита командной строки, отображающая сетевые соединения для протокола управления передачей (TCP, как входящие, так и исходящие), таблицы маршрутизации, а также статистику сетевых интерфейсов (контроллеров сетевых интерфейсов или программно-определяемых сетевых интерфейсов) и сетевых протоколов. Она доступна в Unix, Plan 9, Inferno и Unix-подобных операционных системах, включая macOS, Linux, Solaris и BSD. Также она доступна в IBM OS/2 и операционных системах Microsoft Windows NT, таких как Windows XP, Windows Vista, Windows 7, Windows 8 и Windows 10. Netstat используется для выявления проблем в сети и определения объема сетевого трафика для оценки производительности. В Linux эта программа устарела, хотя и по-прежнему включена во многие дистрибутивы. В Linux netstat (входящая в состав "net tools") заменена утилитой ss (входящей в состав iproute2). Вместо netstat r рекомендуется использовать ip route, вместо netstat i — ip link, а вместо netstat g — ip maddr.

Параметры

Параметры, используемые с этой командой, должны быть предварены дефисом, а не слэшем. Некоторые параметры не поддерживаются на всех платформах. Название Описание Windows ReactOS macOS BSD NetBSD FreeBSD Linux Solaris OS/2 Отображает все активные соединения и TCP и UDP порты, на которых компьютер прослушивает. ✔ ✔ ✔ Отображает имя двоичной (исполняемой) программы, участвующей в создании каждого соединения или прослушивающего порта. (Windows XP, Windows Server 2003 и более новые операционные системы Windows; не Microsoft Windows 2000 или более старые). ✔ Выводит общее количество переданных байтов трафика. ✔ ✔ Отображает статистику Ethernet, такую как количество отправленных и полученных байтов и пакетов. Этот параметр можно комбинировать с ✔ ✔ Отображает полные доменные имена (FQDN) для внешних адресов (доступно только в Windows Vista и более новых операционных системах). ✔ Ограничивает отображение семейством адресных сокетов: unix, inet, inet6. ✔ Отображает информацию о членстве в группах многоадресной рассылки для IPv4 и IPv6 (может быть доступно только в новых операционных системах). ✔ Отображает сетевые интерфейсы и их статистику. ✔ Отображает статистику памяти для сетевого кода (статистику STREAMS в Solaris). Отображает активные TCP-соединения, при этом адреса и номера портов представлены в числовом формате, и попыток определить имена не предпринимается. ✔ ✔ ✔ Отображает активные TCP-соединения и включает идентификатор процесса (PID) для каждого соединения. Приложение, соответствующее PID, можно найти на вкладке "Процессы" в Диспетчере задач Windows. Этот параметр можно комбинировать с и . Этот параметр доступен в Microsoft Windows XP, Windows Server 2003 и Windows 2000 при установке обновления. ✔ протокол Отображает соединения для указанного протокола. Протокол может быть tcp, udp, tcpv6 или udpv6. Если этот параметр используется для отображения статистики по протоколу, протокол может быть tcp, udp, icmp, ip, tcpv6, udpv6, icmpv6 или ipv6. ✔ ✔ ✔ Показывает, какие процессы используют какие сокеты (аналогично команде `netstat -b` в Windows) (требуются права root). ✔ протокол Отображает соединения для указанного протокола. Протокол может быть ip, ipv6, icmp, icmpv6, igmp, udp, tcp или rawip. ✔ Отображает содержимое таблицы маршрутизации IP. (Эквивалентно команде `route print` в Windows.) ✔ ✔ ✔ ✔ Отображает статистику по протоколам. По умолчанию отображается статистика для протоколов TCP, UDP, ICMP и IP. Если в Windows XP установлен протокол IPv6, отображается статистика для протоколов TCP over IPv6, UDP over IPv6, ICMPv6 и IPv6. Параметр позволяет указать набор протоколов. ✔ ✔ ✔ Отображает только TCP-соединения. ✔ ✔ Отображает только UDP-соединения. ✔ ✔ Широкий вывод: не усекает имена хостов и IPv6-адреса. ✔ Отображает соединения NetworkDirect, слушателей и общие конечные точки. ✔ Отображает шаблон TCP-соединения для всех соединений. Нельзя комбинировать с другими опциями. ✔ При использовании с отображает последовательность компонентов, участвующих в создании соединения или прослушивающего порта для всех исполняемых файлов. ✔ Обновляет выбранную информацию каждые Interval секунд. Нажмите CTRL+C для остановки обновления. Если параметр не указан, netstat выводит информацию только один раз. ✔ ✔ Отображает справку в командной строке. ✔ ✔ ✔ ✔ ✔ ✔ Отображает справку в командной строке. ✔ ✔ Отображает справку в командной строке. ✔ ✔

*Ничего

Команда Пояснение netstat a Показывает все сокеты, как прослушивающие, так и не прослушивающие, все протоколы, такие как TCP, UDP и т. д. netstat at Показывает только TCP-соединения (au показывает только UDP-соединения). netstat ant Показывает все TCP-соединения без разрешения DNS (вместо этого отображает IP-адреса). netstat al Показывает только прослушивающие сокеты. netstat aep Также показывает PID и программу, к которой принадлежит каждый сокет, e добавляет дополнительную информацию, такую как пользователь. Запускайте как root, чтобы увидеть все PID. netstat s > file2. txt Показывает статистику сети. netstat r Показывает информацию о маршрутизации ядра. Это тот же вывод, что и route -e. netstat i Отображает таблицу всех сетевых интерфейсов. Добавьте e, чтобы получить вывод, аналогичный ifconfig. netstat ct Отображает TCP-соединения в режиме реального времени. netstat g Отображает информацию о членстве в многоадресных группах для IPv4 и IPv6. netstat lntu Отображает все службы, прослушивающие TCP и UDP, все свободные открытые порты на локальной машине. netstat atnp | grep ESTA Отображает все текущие "установленные" TCP-соединения.

Кавеат

В некоторых версиях netstat отсутствуют явные разделители полей в выходных данных, формируемых printf, из-за чего числовые поля сливаются, что приводит к повреждению данных.

Особые замечания к платформе

В Linux часто можно получать необработанные данные из /proc/net/dev, чтобы обойти искажение вывода printf, возникающее в сводке статистики сетевых интерфейсов netstat, netstat i, до тех пор, пока эта проблема не будет устранена. На платформе Windows информацию netstat можно получить, вызывая функции GetTcpTable и GetUdpTable в IP Helper API или IPHLPAPI.DLL. Возвращаемая информация включает локальные и удаленные IP-адреса, локальные и удаленные порты и (для GetTcpTable) коды состояния TCP. Помимо командной строки netstat.exe, поставляемой с Windows, доступны программы netstat с графическим интерфейсом. На платформе Windows эта команда доступна только при установленном протоколе TCP/IP в качестве компонента в свойствах сетевого адаптера в разделе "Сетевые подключения". На платформе Windows, работающей с Remote Desktop Services (ранее Terminal Services), отображаются только соединения текущего пользователя, а не для всего компьютера. В macOS сетевая графическая утилита Network Utility находится в папке /System/Library/CoreServices/Applications (или /Applications/Utilities в OS X Mountain Lion и более ранних версиях), вкладка Netstat которой запускает команду netstat и отображает ее вывод.