Windows 10 предлагает встроенный инструмент сетевого анализатора PktMon.exe
для мониторинга внутреннего распространения пакетов и отчетов о сбрасывании пакетов. Этот инструмент может помочь вам исследовать сеть и помочь устранить причину задержки в сети, выявить уязвимые приложения и, при использовании с дополнительным набором инструментов, может предоставить представление о главных показателях.
В то время как пользователи Linux всегда имели инструмент tcpdump для отслеживания сети, пользователям Windows приходилось устанавливать сторонние программы, такие как Microsoft Network Monitor и Wireshark.
Сетевой анализатор пакетов pktmon.exe в Windows 10
PktMon или Packet Monitor - это новый сетевой анализатор (сниффер) или средство диагностики сети и мониторинга пакетов. Он находится в папке System (C:Windowssystem32pktmon.exe.
), что означает, что вы можете вызвать его из командной строки, при помощи утилиты Run или PowerShell.
Как запустить Packet Monitor в Windows 10?
Для запуска Packet Monitor сначала необходимо открыть окно командной строки.
- Нажмите
Ctrl + R
, чтобы открыть Run и введитеcmd
, затем нажмите Enter или нажмите кнопку OK. - В командной строке введите
pktmon.exe
и нажмите Enter.
Что может PktMon?
Если вы запустите справку PktMon, введя в командной строке pktmon help
, вот что вы получите:
- filter: управление фильтрами пакетов
- comp: управление зарегистрированными компонентами
- reset: сброс счетчиков до нуля
- start: начать мониторинг пакетов
- stop: остановить мониторинг
- format: преобразовать файл логов в текст
- unload: выгрузить драйвер PktMon.
И если вам нужна дополнительная помощь по конкретной команде, вы можете запустить справку для этой команды. Вот как это выглядит:
pktmon filter help pktmon filter { list | add | remove } [OPTIONS | help]
Commands list Display active packet filters. add Add a filter to control which packets are reported. remove Removes all filters.
Как использовать PktMon для мониторинга сетевого трафика
Рассмотрим как использовать PktMon. В этом примере предполагается, что вы хотите отслеживать порт на компьютере, который часто имеет проблемы. Для этого необходимо:
- Создать фильтр для мониторинга порта
- Начать мониторинг
- Экспортировать логи в читаемый формат
Создание фильтра
Основная опция, которая позволяет вам отслеживать трафик - это filter
. Используя эту опцию, вы можете создать фильтр, чтобы контролировать, какие пакеты будут под наблюдением, на основе кадра Ethernet, заголовка IP, заголовка TCP и инкапсуляции. Если вы запустите нижеупомянутую команду, вы получите полную информацию о том, что вы можете сделать с фильтром.
pktmon filter add help
Итак, возвращаясь к нашей теме, давайте предположим, что нам нужен порт TCP 1088
. Это может быть порт, используемый вашим пользовательским приложением, который начал сбоить.
Откройте командную строку или PowerShell с правами администратора и создайте фильтр пакетов с помощью команды: pktmon filter add -p [port]
pktmon filter add -p 1088
Чтообы удалить все фильтры, выполните команду pktmon filter remove
Начать мониторинг
Поскольку это не автоматическая программа, работающая в фоновом режиме, а работающая по требованию, вам нужно запустить мониторинг вручную. Запустите следующую команду, чтобы начать мониторинг пакетов:
pktmon start --etw - p 0
Она запустит мониторинг и создаст файл с логами в указанном месте. Вам нужно будет вручную останавливать мониторинг, используя аргумент stop
, чтобы остановить ведение лога, или это само закончится, когда компьютер выключится. Если вы запустите команду с -p 0
, то она будет захватывать только 128 байтов пакета.
После выполнения pktmon записывает все пакеты на ВСЕХ сетевых интерфейсах устройства. Чтобы захватывать весь пакет и только с определенного устройства Ethernet, вы можете использовать аргументы -p 0
(захват всего пакета) и -c 13
(захват только с адаптера с идентификатором 13). Чтобы определить ID вашего адаптера, вы можете запустить команду pktmon comp list
Log filename: C:Windowssystem32PktMon.etl Logging mode: Circular Maximum file size: 512 MB
Экспорт лога в читаемый формат
Файл журнала сохраняется в файле PktMon.ETL
, который можно преобразовать в удобочитаемый формат с помощью следующей команды:
pktmon format PktMon.etl -o port-monitor-1088.txt
Таким образом мы на выходе получаем .txt
файл с логами, который можно открыть в блокноте. Однако чтобы извлечь выгоду из полученных данных, стоит скачать и установить Microsoft Network Monitor и использовать его для просмотра файла ETL. Используя Network Monitor, вы можете увидеть полный пакет, который был отправлен, включая любую текстовую информацию.
Мониторинг в реальном времени
Вы можете включить мониторинг в реальном времени, используя аргумент-l real-time
. Это приведет к тому, что захваченные пакеты будут отображаться непосредственно на экране, а также сохраняться в файле ETL.
Microsoft также добавила возможность конвертировать файлы ETL в формат PCAPNG, чтобы их можно было использовать в таких программах, как Wireshark.
pktmon pcapng help
После преобразования файла в формат PCAPNG их можно открыть в Wireshark.