В продолжении цикла команд сетевой диагностики, сегодня NETSTAT
Команда NETSTAT предназначена для получения сведений о состоянии сетевых соединений и слушаемых на данном компьютере портах TCP и UDP, а также, для отображения статистических данных по сетевым интерфейсам и протоколам.
Формат командной строки:
NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p протокол] [-r] [-s] [-t] [интервал]
Параметры командной строки:
-a - Отображение всех подключений и ожидающих портов.
-b - Отображение исполняемого файла, участвующего в создании каждого подключения, или ожидающего порта. Иногда известные исполняемые файлы содержат множественные независимые компоненты. Тогда отображается последовательность компонентов, участвующих в создании подключения, либо ожидающий порт. В этом случае имя исполняемого файла находится снизу в скобках [], сверху - компонент, который им вызывается, и так до тех пор, пока не достигается TCP/IP. Заметьте, что такой подход может занять много времени и требует достаточных разрешений.
-e - Отображение статистики Ethernet. Может применяться вместе с параметром -s.
-f - Отображение полного имени домена (FQDN) для внешних адресов.
-n - Отображение адресов и номеров портов в числовом формате.
-o - Отображение кода (ID) процесса каждого подключения.
-p протокол - Отображение подключений для протокола, задаваемых этим параметром. Допустимые значения: TCP, UDP, TCPv6 или UDPv6. Используется вместе с параметром -s для отображения статистики по протоколам. Допустимые значения: IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP или UDPv6.
-r - Отображение содержимого таблицы маршрутов.
-s - Отображение статистики протокола. По умолчанию статистика отображается для протоколов IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP и UDPv6. Параметр -p позволяет указать подмножество выводимых данных.
-t - Отображение текущего подключения в состоянии переноса нагрузки с процессора на сетевой адаптер при передаче данных ( "offload" ).
-v - Подробный вывод информации, если это возможно.
интервал - Повторный вывод статистических данных через указанный интервал в секундах. Для прекращения вывода данных нажмите клавиши CTRL+C. Если параметр не задан, сведения о текущей конфигурации выводятся один раз.
На практике, утилиту netstat.exe удобно использовать в цепочке с командами постраничного вывода (more), перенаправления стандартного вывода в файл ( > ) и поиска текста в результатах вывода ( find ).
netstat -a | more - отобразить все соединения в постраничном режиме вывода на экран.
netstat -a -n| more - то же, что и в предыдущем примере, но с отображением номеров портов и IP-адресов в числовом формате. В отличие от предыдущего примера, команда netstat с параметром -t отрабатывает намного быстрее.
netstat -a -f | more - то же, что и в предыдущем примере, но с отображением полных DNS-имен узлов, участвующих в соединениии.
netstat -a > C:\netstatall.txt - отобразить все соединения с записью результатов в файл C:\netstatall.txt.
netstat -a | find /I "LISTENING" - отобразить все соединения со статусом LISTENING, т.е. отобразить список сетевых интерфейсов и портов, ожидающих входящие соединения ( "слушаемых" портов ). Ключ /I в команде find указывает, что при поиске текста, не нужно учитывать регистр символов.
netstat -a | find /I "listening" > C:\listening.txt - отобразить все соединения со статусом LISTENING с записью результатов в файл C:\listening.txt.
Пример отображаемой информации:
Активные подключения
Имя - название протокола.
Локальный адрес - локальный IP-адрес участвующий в соединении или связанный со службой, ожидающей входящие соединения (слушающей порт). Если в качестве адреса отображается 0.0.0.0 , то это означает - "любой адрес", т.е в соединении могут использоваться все IP-адреса существующие на данном компьютере. Адрес 127.0.0.1 - это петлевой интерфейс, используемый в качестве средства IP протокола для взаимодействия между процессами без реальной передачи данных.
Внешний адрес Внешний IP-адрес, участвующий в создании соединения.
Состояние - состояние соединения. Состояние Listening говорит о том, что строка состояния отображает информацию о сетевой службе, ожидающей входящие соединения по соответствующему протоколу на адрес и порт, отображаемые в колонке "Локальный адрес ". Состояние ESTABLISHED указывает на активное соединение. В колонке "Состояние" для соединений по протоколу TCP может отображаться текущий этап TCP-сессии определяемый по обработке значений флагов в заголовке TCP - пакета (Syn, Ask, Fin ... ). Возможные состояния:
CLOSE_WAIT - ожидание закрытия соединения.
CLOSED - соединение закрыто.
ESTABLISHED - соединение установлено.
LISTENING - ожидается соединение (слушается порт)
TIME_WAIT - превышение времени ответа.
Имя программного модуля, связанного с данным соединением отображается, если задан параметр -b в командной строке при запуске netstat.exe.
netstat -a -b - получить список всех сетевых соединений и связанных с ними программ.
TCP 192.168.0.3:3389 89.22.52.11:5779 ESTABLISHED
CryptSvc
[svchost.exe]
В данном примере отображается информация о соединении, в создании которого участвуют программные компоненты CryptSvc и svchost.exe.
netstat -ab - параметры командной строки можно объединять. Параметр -ab эквивалентен -a -b
netstat -e - получить статистические данные для обмена по протоколу Ethernet. Отображается суммарные значения принятых и полученных байт для всех сетевых адаптеров Ethernet.
Статистика интерфейса
netstat -e -v - кроме суммарной статистики, отображается информация об обмене данными через отдельные сетевые интерфейсы.
netstat -e -s - дополнительно к статистике Ethernet, отображается статистика для протоколов IP , ICMP , TCP , UDP
Статистика интерфейса
Статистика IPv4
Статистика IPv6
Статистика ICMPv4
Статистика ICMPv6
Статистика TCP для IPv4
Статистика TCP для IPv6
Статистика UDP для IPv4
Статистика UDP для IPv6
netstat -s -p icmp - получить статистику только по протоколу ICMP
Пример отображаемых статистических данных:
Статистика ICMPv4
Для циклического опроса состояния сетевых соединений используется запуск программы с указанием интервала вывода статистических данных в секундах.
netstat -e 3 - отображать статистику по Ethernet с интервалом 3 секунды.
netstat –f 10 - каждые 10 секунд отображать статистику сетевых соединений с использованием полных DNS-имен узлов.
netstat -n 5 | find /i "Established" - каждые 5 секунд отображать статистику по установленным соединениям.