Примеры, переключатели и многое другое
Команда netstat, что означает сетевая статистика , – это команда командной строки, используемая для отображения очень подробной информации о том, как ваш компьютер взаимодействует с другими компьютерами или сетевыми устройствами.
В частности, команда netstat может отображать подробности об отдельных сетевых подключениях, общую статистику и статистику по протоколу и многое другое, что может помочь в устранении неполадок определенных типов.
Доступность команды Netstat
Команда netstat доступна из командной строки в большинстве версий Windows, включая Windows 10, Windows 8, Windows 7, Windows Vista, Windows XP, операционные системы Windows Server и некоторые старые версии Windows.
netstat – это кроссплатформенная команда, что означает, что она также доступна в других операционных системах, таких как macOS и Linux.
Доступность некоторых переключателей команд netstat и другого синтаксиса команд netstat может отличаться в зависимости от операционной системы.
Синтаксис команды Netstat
netstat [ -a ] [ -b ] [ -e ] [ -f ] [ -n ] [ -o ] [ -p протокол ] [ -r ] [ -s ] [ -t ] [ -x ] [ -y ] [ time_interval ] [ /? ]
Как читать командный синтаксис
Option | Объяснение |
NetStat | Выполните только команду netstat, чтобы отобразить относительно простой список всех активных соединений TCP, в котором для каждого из них будет показан локальный IP-адрес (ваш компьютер), внешний IP-адрес (другой компьютер или сетевое устройство), а также с соответствующими номерами портов и состоянием TCP. |
-a | Этот переключатель отображает активные TCP-соединения, TCP-соединения с состоянием прослушивания, а также UDP-порты, которые прослушиваются. |
-b | Этот переключатель netstat очень похож на переключатель -o , указанный ниже, но вместо отображения PID будет отображать фактическое имя файла процесса. Использование -b над -o может показаться, что это экономит вам шаг или два, но иногда его использование может значительно увеличить время, необходимое netstat для полного выполнения. |
-e | Используйте этот переключатель с командой netstat для отображения статистики о вашем сетевом подключении. Эти данные включают байты, одноадресные пакеты, неадресные пакеты, сбросы, ошибки и неизвестные протоколы, полученные и отправленные с момента установления соединения. |
-f | Переключатель -f заставит команду netstat отображать полное доменное имя (FQDN) для каждого внешнего IP-адреса, когда это возможно. |
-n | Используйте переключатель -n , чтобы предотвратить попытки netstat определить имена хостов для внешних IP-адресов. В зависимости от текущих сетевых подключений использование этого переключателя может значительно сократить время, необходимое для полного выполнения netstat. |
-o | Удобный параметр для многих задач по устранению неполадок, переключатель -o отображает идентификатор процесса (PID), связанный с каждым отображаемым соединением. См. Пример ниже для получения дополнительной информации об использовании netstat -o . |
-p | Используйте переключатель -p , чтобы показать соединения или статистику только для определенного протокола . Вы не можете определить более одного протокола одновременно и не можете выполнить netstat с помощью -p без определения протокола . |
протокол | При указании протокола с параметром -p вы можете использовать tcp , udp , tcpv6 или udpv6 . Если вы используете -s с -p для просмотра статистики по протоколу, вы можете использовать icmp , ip , icmpv6 или ipv6 в дополнение к первым четырем, которые я упомянул. |
-r | Выполните netstat с помощью -r , чтобы отобразить таблицу IP-маршрутизации. Это аналогично использованию команды route для выполнения route print . |
-s | Параметр -s можно использовать с командой netstat для отображения подробной статистики по протоколу.Вы можете ограничить отображаемую статистику определенным протоколом, используя параметр -s и указав этот протокол , но обязательно используйте -s перед -p протокол при совместном использовании переключателей. |
-t | Используйте переключатель -t , чтобы показать текущее состояние разгрузки дымовой трубы TCP вместо обычно отображаемого состояния TCP. |
-x | Используйте параметр -x , чтобы отобразить все прослушиватели NetworkDirect, соединения и общие конечные точки. |
-y | Переключатель -y можно использовать для отображения шаблона TCP-соединения для всех соединений. Вы не можете использовать -y с любым другим параметром netstat. |
time_in интер вале | Это время в секундах, которое вы хотели бы, чтобы команда netstat автоматически повторялась, останавливаясь только при использовании Ctrl-C для завершения цикла. |
/? | Используйте переключатель справки, чтобы показать подробности о нескольких параметрах команды netstat. |
Облегчите работу со всей этой информацией netstat в командной строке, выведя то, что вы видите на экране, в текстовый файл с помощью оператора перенаправления. См. Как перенаправить вывод команды в файл для получения полных инструкций.
Примеры команд Netstat
netstat -f
В этом первом примере мы выполняем netstat, чтобы показать все активные соединения TCP. Однако мы хотим видеть компьютеры, к которым мы подключены, в формате FQDN [ -f ] вместо простого IP-адреса.
Вот пример того, что вы можете увидеть:
Активные подключения
Протокальный адрес Состояние внешнего адреса
TCP 127.0.0.1:5357 VM-Windows-7: 49229 TIME_WAIT
TCP 127.0.0.1:49225 VM-Windows-7: 12080 TIME_WAIT
TCP 192.168.1.14:49194 75.125.212.75:http CLOSE_WAIT
TCP 192.168.1.14:49196 a795sm.avast.com:http CLOSE_WAIT
TCP 192.168.1.14:49197 a795sm.avast.com:http CLOSE_WAIT
TCP 192.168.1.14:49230 TIM-PC: wsd TIME_WAIT
TCP 192.168.1.14:49231 TIM-PC: icslap УСТАНОВЛЕНО
TCP 192.168.1.14:49232 TIM-PC: netbios-ssn TIME_WAIT
TCP 192.168.1.14:49233 TIM-PC: netbios-ssn TIME_WAIT
TCP [:: 1]: 2869 VM-Windows-7: 49226 УСТАНОВЛЕНО
TCP [:: 1]: 49226 VM-Windows-7: icslap УСТАНОВЛЕНО
Как видите, на момент выполнения netstat в этом примере было 11 активных соединений TCP. Единственный протокол (в столбце Прото ) – это TCP, который ожидался, потому что мы не использовали -a .
Вы также можете увидеть три набора IP-адресов в столбце Локальный адрес – фактический IP-адрес 192.168.1.14 и версии IPv4 и IPv6 адресов обратной связи, а также порт, который использует каждое соединение. В столбце Внешний адрес указано полное доменное имя ( 75.125.212.75 по какой-то причине не удалось разрешить), а также этот порт.
Наконец, в столбце State перечислено состояние TCP этого конкретного соединения.
netstat -o
В этом примере netstat будет работать нормально, поэтому он показывает только активные соединения TCP, но мы также хотим видеть соответствующий идентификатор процесса [ -o ] для каждого соединения, чтобы мы могли определить, какая программа на компьютер инициировал каждый.
Вот что отображал компьютер:
Активные подключения
Прото-локальный адрес Состояние внешнего адреса PID
TCP 192.168.1.14:49194 75.125.212.75:http CLOSE_WAIT 2948
TCP 192.168.1.14:49196 a795sm: http CLOSE_WAIT 2948
TCP 192.168.1.14:49197 a795sm: http CLOSE_WAIT 2948
Вы, вероятно, заметили новый столбец PID . В этом случае идентификаторы PID одинаковы. Это означает, что одна и та же программа на компьютере открывала эти соединения.
Чтобы определить, какая программа представлена PID 2948 на компьютере, все, что вам нужно сделать, это открыть диспетчер задач, выбрать вкладку Процессы и отметить Имя изображения , указанное рядом с PID, который мы ищем в столбце PID .
Использование команды netstat с параметром -o может быть очень полезно при отслеживании того, какая программа использует слишком большую долю вашей пропускной способности. Он также может помочь определить место назначения, где какое-либо вредоносное ПО или даже иное законное программное обеспечение может отправлять информацию без вашего разрешения.
Хотя этот и предыдущий примеры были запущены на одном компьютере и всего за одну минуту, вы можете видеть, что список активных соединений TCP значительно отличается.Это связано с тем, что ваш компьютер постоянно подключается и отключается от различных других устройств в сети и через Интернет.
netstat -0 | findstr 28604
Приведенный выше пример аналогичен тому, что мы уже рассмотрели, но вместо отображения всех соединений мы сообщаем команде netstat показывать только соединения, использующие определенный PID, 28604 в этом пример.
Подобную команду можно использовать для фильтрации соединений с состоянием CLOSE_WAIT , заменив PID на ESTABLISHED .
netstat -s -p tcp -f
В этом примере мы хотим увидеть статистику по протоколу [ -s ], но не все из них, а только статистику TCP [ -p tcp ] , Мы также хотим, чтобы внешние адреса отображались в формате FQDN [ -f ].
Вот что команда netstat, как показано выше, выдает на примере компьютера:
Статистика TCP для IPv4
Активные открытия = 77
Пассивные открытия = 21
Неудачные попытки соединения = 2
Сбросить соединения = 25
Текущие соединения = 5
Полученные сегменты = 7313
Отправлено сегментов = 4824
Повторно передано сегментов = 5
Активные подключения
Протокальный адрес Состояние внешнего адреса
TCP 127.0.0.1:2869 VM-Windows-7: 49235 TIME_WAIT
TCP 127.0. 0.1: 2869 VM-Windows-7: 49238 УСТАНОВЛЕНО
TCP 127.0.0.1:49238 VM-Windows-7: icslap УСТАНОВЛЕНО
TCP 192.168. 1.14: 49194 75.125.212.75:http CLOSE_WAIT
TCP 192.168.1.14:49196 a795sm.avast.com:http CLOSE_WAIT
TCP 192.168.1.14: 49197 a795sm.avast.com:http CLOSE_WAIT
Как видите, отображаются различные статистические данные для протокола TCP, а также все активные TCP-соединения в данный момент.
netstat -e -t 5
В этом последнем примере команда netstat выполняется, чтобы показать некоторую базовую статистику сетевого интерфейса [ -e ] и чтобы эта статистика постоянно обновлялась в командном окне каждые пять секунд [ -t 5 ].
Вот что производится на экране:
Статистика интерфейса
Полученные отправленные
байты 22132338 1846834
Одноадресные пакеты 19113 9869
Неадресные пакеты 0 0
Сбрасывает 0 0
Ошибки 0 0 < br /> Неизвестные протоколы 0
Статистика интерфейса
Полученные отправленные
байты 22134630 1846834
Одноадресные пакеты 19128 9869
Неадресные пакеты 0 0
Сбрасывает 0 0 < br /> Ошибки 0 0
Неизвестные протоколы 0
^ C
Отображается различная информация, которую вы можете увидеть здесь и которую мы перечислили в синтаксисе -e выше.
Команда netstat автоматически выполняется только один раз, как видно из двух таблиц в результате. Обратите внимание на ^ C внизу, указывающий, что команда отмены Ctrl + C была использована для остановки повторного запуска команды.
Команды, связанные с Netstat
Команда netstat часто используется с другими командами командной строки, такими как nslookup, ping, tracert, ipconfig и другими.
[1] Возможно, вам придется вручную добавить столбец PID в диспетчер задач. Это можно сделать, выбрав PID после щелчка правой кнопкой мыши по заголовкам столбцов на вкладке Процесс . Если вы используете Windows 7 или более старую ОС Windows, установите флажок PID (идентификатор процесса) в разделе Вид > Выбрать столбцы в диспетчере задач. , Вам также может потребоваться выбрать Показать процессы от всех пользователей в нижней части вкладки Процессы , если искомый PID отсутствует в списке.