В этой статье вы узнаете, как использовать функцию захвата пакетов в Azure Network Watcher для удаленной настройки, запуска, остановки, скачивания и удаления записей пакетов.
Требования
Учетная запись Azure с активной подпиской.
Создайте учетную запись бесплатно .
Виртуальная машина (ВМ) или масштабируемый набор виртуальных машин с исходящим TCP-подключением к: 169.254.169.254
через порт 80
и 168.63.129.16
через порт 8037
. Расширение VM агента Network Watcher использует эти IP-адреса для коммуникации с платформой Azure.
Расширение агента наблюдателя за сетью для виртуальной машины, установленное на целевой виртуальной машине. При использовании захвата пакетов Network Watcher в портале Azure агент автоматически устанавливается на целевой виртуальной машине или масштабируемом наборе, если он не был установлен ранее. Чтобы обновить уже установленный агент, ознакомьтесь с инструкциями по обновлению расширения "Наблюдатель за сетями Azure" до последней версии.
Учетная запись хранения Azure с исходящим TCP-подключением к виртуальной машине через порт 443
. Если у вас нет учетной записи хранения, см. статью "Создание учетной записи хранения с помощью портал Azure".
- Учетная запись хранения должна быть доступна из подсети целевой виртуальной машины или масштабируемого набора. Дополнительные сведения см. в статье Настройка брандмауэров службы хранилища Azure и виртуальных сетей.
- Доступ к ключу учетной записи хранилища должен быть активирован, чтобы разрешить запросы от Network Watcher с использованием токенов с подписанными URL (SAS).
Войдите на портал Azure с помощью своей учетной записи Azure.
Учетная запись Azure с активной подпиской.
Создайте учетную запись бесплатно .
Виртуальная машина с исходящим TCP-подключением: 169.254.169.254
через порт 80
и 168.63.129.16
через порт 8037
. Расширение виртуальной машины агента Network Watcher использует эти IP-адреса для взаимодействия с платформой Azure.
Агент Network Watcher установлен как расширение на целевой виртуальной машине. Дополнительные сведения см. в разделе "Управление расширением виртуальной машины агента Наблюдатель за сетями для Windows" или "Управление виртуальными машинами агента Наблюдатель за сетями" для Linux.
Учетная запись хранения Azure с исходящим TCP-подключением к виртуальной машине через порт 443
. Если у вас нет учетной записи хранения, см. статью "Создание учетной записи хранения с помощью PowerShell".
- Учетная запись хранения должна быть доступна из подсети целевой виртуальной машины или масштабируемого набора виртуальных машин. Дополнительные сведения см. в статье Настройка брандмауэров службы хранилища Azure и виртуальных сетей.
- Доступ к ключу учетной записи хранения должен быть включен, чтобы разрешить запросы от Network Watcher с использованием токенов общих подписей доступа (SAS).
Azure Cloud Shell или Azure PowerShell.
Действия, описанные в этой статье, интерактивно выполняют командлеты Azure PowerShell в Azure Cloud Shell. Чтобы выполнить команды в Cloud Shell, выберите Open Cloud Shell в правом верхнем углу блока кода. Выберите "Копировать", чтобы скопировать код, а затем вставьте его в Cloud Shell, чтобы запустить его. Вы также можете запустить Cloud Shell из портала Azure.
Вы также можете установить Azure PowerShell локально для выполнения командлетов. Для этой статьи требуется модуль Az PowerShell. Дополнительные сведения см. в статье "Установка Azure PowerShell". При локальном запуске PowerShell войдите в Azure с помощью командлета Connect-AzAccount .
Примечание.
Azure создает экземпляр Network Watcher в регионе виртуальной машины, если Network Watcher не был включен для этого региона. Дополнительные сведения см. в статье Включение или отключение Наблюдателя за сетями Azure.
Если группа безопасности сети связана с сетевым интерфейсом виртуальной машины или подсетью, в которую находится сетевой интерфейс, убедитесь, что правила существуют, чтобы разрешить исходящее подключение. Аналогичным образом убедитесь в обеспечении исходящего подключения при добавлении определяемых пользователем маршрутов в вашу сеть.
Запуск записи пакета
Чтобы запустить сеанс записи, выполните следующие действия.
В поле поиска в верхней части портала введите Наблюдатель за сетями. Выберите Наблюдатель за сетями из результатов поиска.
Выберите запись пакетов в разделе "Средства диагностики сети", а затем нажмите кнопку "Добавить ", чтобы создать запись пакетов.
В разделе "Добавление записи пакетов" введите или выберите значения для следующих параметров:
Настройка |
Значение |
Основные сведения |
|
Подписка |
Выберите подписку Azure виртуальной машины. |
Группа ресурсов |
Выберите группу ресурсов виртуальной машины. |
Целевой тип |
Выберите виртуальную машину или масштабируемый набор виртуальных машин. |
Целевой масштабируемый набор виртуальных машин |
Выберите масштабируемый набор виртуальных машин. Этот параметр доступен, если выбрать масштабируемый набор виртуальных машин в качестве целевого типа. |
Целевой экземпляр |
Выберите виртуальную машину или экземпляр масштабируемого набора. |
Имя записи пакетов |
Введите имя или оставьте имя по умолчанию. |
Конфигурация записи пакетов |
|
Расположение записи |
Выберите учетную запись хранения (параметр по умолчанию), файл или оба. |
учетная запись хранилища |
Выберите вашу учетную запись хранения уровня «Стандартный»1. Этот параметр доступен, если выбрана учетная запись хранения или оба в качестве расположения записи. Учетная запись хранения должна находиться в том же регионе, что и целевой экземпляр. |
Путь к локальному файлу |
Введите допустимый локальный путь к файлу, в котором требуется сохранить запись в целевой виртуальной машине. Если вы используете компьютер Linux, путь может начинаться с /var/captures . Если вы используете компьютер с Windows, путь может начинаться с C:\Captures . Этот параметр доступен, если выбрать "Файл" или "Оба" в качестве расположения записи. |
Максимальное количество байтов на пакет |
Введите максимальное количество байтов, которые необходимо записать на каждый пакет. Все байты записываются, если оставить поле пустым или ввести 0. |
Максимальное количество байтов на сеанс |
Введите общее количество байтов, захваченных. После достижения этого значения запись пакетов останавливается. Если оставить пустым, записывается до 1 ГБ. |
Ограничение по времени (в секундах) |
Введите ограничение времени сеанса записи пакетов в секундах. После достижения этого значения запись пакетов останавливается. До 5 часов (18 000 секунд) регистрируется, если поле оставлено пустым. |
Фильтрация (необязательно) |
|
Добавление условий фильтра |
Выберите " Добавить критерии фильтра" , чтобы добавить новый фильтр. Можно определить любое число фильтров. |
Протокол |
Фильтрует запись пакетов на основе выбранного протокола. Доступные значения: TCP, UDP или Any. |
Локальный IP-адрес2 |
Фильтрует запись пакетов для пакетов, где локальный IP-адрес соответствует этому значению. |
Локальный порт2 |
Фильтрует запись пакетов для пакетов, где локальный порт соответствует этому значению. |
Удаленный IP-адрес2 |
Фильтрует запись пакетов для пакетов, где удаленный IP-адрес соответствует этому значению. |
Удаленный порт2 |
Фильтрует запись пакетов для пакетов, где удаленный порт соответствует этому значению. |
1 Учетные записи хранения класса Premium в настоящее время не поддерживаются для хранения записей пакетов.
2 Значения портов и IP-адресов могут быть одним значением, диапазоном, таким как 80-1024, или несколькими значениями, такими как 80, 443.
Нажмите кнопку "Начать запись пакетов".
Запись пакетов останавливается после достижения ограничения времени или размера файла (максимум байтов на сеанс).
Чтобы запустить сеанс записи, используйте командлет New-AzNetworkWatcherPacketCapture :
# Place the virtual machine configuration into a variable.
$vm = Get-AzVM -ResourceGroupName 'myResourceGroup' -Name 'myVM'
# Place the storage account configuration into a variable.
$storageAccount = Get-AzStorageAccount -ResourceGroupName 'myResourceGroup' -Name 'mystorageaccount'
# Start the Network Watcher capture session.
New-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1' -TargetVirtualMachineId $vm.Id -StorageAccountId $storageAccount.Id
После запуска сеанса записи вы увидите следующие выходные данные:
ProvisioningState Name BytesToCapturePerPacket TotalBytesPerSession TimeLimitInSeconds
----------------- ---- ----------------------- -------------------- ------------------
Succeeded myVM_1 0 1073741824 18000
В следующей таблице описаны необязательные параметры, которые можно использовать с командлетом New-AzNetworkWatcherPacketCapture :
Параметр |
описание |
-Filter |
Добавьте фильтры, чтобы записать только нужный трафик. Например, можно записать только TCP-трафик из определенного IP-адреса в определенный порт. |
-TimeLimitInSeconds |
Задайте максимальную длительность сеанса записи. Значение по умолчанию — 18000 секунд (5 часов). |
-BytesToCapturePerPacket |
Задайте максимальное количество байтов для записи каждого пакета. Все байты фиксируются, если они не используются или введено 0. |
-TotalBytesPerSession |
Задайте общее количество байтов, которые записываются. После достижения этого значения запись пакетов останавливается. До 1 ГБ (1 073 741 824 байта) может быть сохранено, если не используется. |
-LocalFilePath |
Введите допустимый путь к локальному файлу, если требуется сохранить запись на целевой виртуальной машине (например, C:\Capture\myVM_1.cap). Если вы используете компьютер Linux, путь должен начинаться с /var/captures. |
Запись пакетов останавливается после достижения ограничения времени или размера файла (максимум байтов на сеанс).
Чтобы запустить сеанс записи, используйте команду create az network watcher packet-capture:
# Start the Network Watcher capture session.
az network watcher packet-capture create --name 'myVM_1' --resource-group 'myResourceGroup' --vm 'myVM' --storage-account 'mystorageaccount'
# Start the Network Watcher capture session (storage account is in different resource group from the VM).
az network watcher packet-capture create --name 'myVM_1' --resource-group 'myResourceGroup' --vm 'myVM' --storage-account '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup2/providers/Microsoft.Storage/storageAccounts/mystorageaccount'
После запуска сеанса записи вы увидите следующие выходные данные:
{
"bytesToCapturePerPacket": 0,
"etag": "W/\"aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb\"",
"filters": [],
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatchers/NetworkWatcher_eastus/packetCaptures/myVM_1",
"name": "myVM_1",
"provisioningState": "Succeeded",
"resourceGroup": "NetworkWatcherRG",
"scope": {
"exclude": [],
"include": []
},
"storageLocation": {
"storageId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/mystorageaccount",
"storagePath": "https://mystorageaccount.blob.core.windows.net/network-watcher-logs/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/myresourcegroup/providers/microsoft.compute/virtualmachines/myvm/2025/01/31/packetcapture_16_39_41_077.cap"
},
"target": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM",
"targetType": "AzureVM",
"timeLimitInSeconds": 18000,
"totalBytesPerSession": 1073741824
}
В следующей таблице описаны необязательные параметры, которые можно использовать с командой az network watcher packet-capture create:
Параметр |
описание |
--filters |
Добавьте фильтры, чтобы записать только нужный трафик. Например, можно записать только TCP-трафик из определенного IP-адреса в определенный порт. |
--time-limit |
Задайте максимальную длительность сеанса записи. Значение по умолчанию — 18000 секунд (5 часов). |
--capture-size |
Задайте максимальное количество байтов для записи каждого пакета. Все байты записываются, если они не используются или введён 0. |
--capture-limit |
Задайте общее количество байтов, которые записываются. После достижения этого значения запись пакетов останавливается. До 1 ГБ (1 073 741 824 байта) захватывается, если не используется. |
--file-path |
Введите допустимый путь к локальному файлу, если требуется сохранить запись на целевой виртуальной машине (например, C:\Capture\myVM_1.cap). Если вы используете компьютер Linux, путь должен начинаться с /var/captures. |
Запись пакетов останавливается после достижения ограничения времени или размера файла (максимум байтов на сеанс).
Прекратите запись пакетов
Чтобы вручную остановить сеанс записи пакетов, прежде чем он достигнет пределов времени или размера файла, выберите многоточие ... в правой части записи пакетов или щелкните его правой кнопкой мыши, а затем нажмите кнопку " Остановить".
Чтобы вручную остановить сеанс записи пакетов, прежде чем он достигнет пределов времени или размера файла, используйте командлет Stop-AzNetworkWatcherPacketCapture .
# Manually stop a packet capture session.
Stop-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
Примечание.
Командлет не возвращает ответ независимо от того, запущен ли в данный момент сеанс записи или сеанс уже остановлен.
Чтобы вручную остановить сеанс записи пакетов, прежде чем он достигнет пределов времени или размера файла, используйте команду az network watcher packet-capture stop .
# Manually stop a packet capture session.
az network watcher packet-capture stop --location 'eastus' --name 'myVM_1'
Примечание.
Команда не возвращает ответ, вне зависимости от того, выполняется ли она в текущем сеансе захвата или в сеансе, который уже завершён.
Просмотр состояния записи пакетов
Перейдите на страницу захвата пакетов в Network Watcher, чтобы перечислить существующие записи пакетов независимо от их состояния.
Используйте командлет Get-AzNetworkWatcherPacketCapture, чтобы получить состояние захвата пакетов (выполняется или завершено).
# Get information, properties, and status of a packet capture.
Get-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
Ниже приведен пример выходных данных командлета Get-AzNetworkWatcherPacketCapture
. Следующий пример приведен после завершения захвата. В качестве значения параметра PacketCaptureStatus указано Stopped, а для параметра StopReason задано значение TimeExceeded. Это значение показывает, что процесс захвата пакетов был успешным и прошёл в заданное время.
ProvisioningState Name Target BytesToCapturePerPacket TotalBytesPerSession TimeLimitInSeconds
----------------- ---- ------ ----------------------- -------------------- ------------------
Succeeded myVM_1 /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM 0 1073741824 18000
Примечание.
Чтобы получить дополнительные сведения в выходных данных, добавьте | Format-List
в конец команды.
Используйте команду az network watcher packet-capture show-status , чтобы получить состояние записи пакетов (выполняется или завершено).
# Get information, properties, and status of a packet capture.
az network watcher packet-capture show-status --location 'eastus' --name 'myVM_1'
Ниже приведен пример выходных данных команды az network watcher packet-capture show-status
. Вы можете увидеть, что значение packetCaptureStatus 'Остановлено', со значением причина остановки 'время истекло'.
{
"additionalProperties": {
"status": "Succeeded"
},
"captureStartTime": "2016-12-06T17:20:01.5671279Z",
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/NetworkWatcherRG/providers/Microsoft.Network/networkWatchers/NetworkWatcher_eastus/packetCaptures/myVM_1",
"name": "packetCaptureName",
"packetCaptureError": [],
"packetCaptureStatus": "Stopped",
"stopReason": "TimeExceeded"
}
Скачивание записи пакета
После завершения сеанса захвата пакетов результирующий файл сохраняется в хранилище Azure, на локальном файле целевой виртуальной машины или в обоих местах. Место хранения для записи пакетов указывается во время его создания. Дополнительные сведения см. в разделе "Запуск записи пакетов".
Чтобы скачать файл записи пакетов, сохраненный в хранилище Azure, выполните следующие действия.
На странице отслеживания пакетов выберите запись пакетов, которую вы хотите скачать.
В разделе "Сведения" выберите ссылку на файл записи пакетов.
На странице BLOB нажмите кнопку "Скачать".
Вы также можете скачать файлы записи, перейдя непосредственно в контейнер учетной записи хранения по следующему пути:
https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachines/{virtualMachineName}/{year}/{month}/{day}/packetcapture_{UTCcreationTime}.cap
Если указана учетная запись хранения, файлы записи сохраняются в учетной записи хранения по следующему пути:
https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachines/{virtualMachineName}/{year}/{month}/{day}/packetcapture_{UTCcreationTime}.cap
Чтобы скачать запись пакетов из хранилища Azure на локальный диск, используйте командлет Get-AzStorageBlobContent :
# Download the packet capture file from Azure storage container.
Get-AzStorageBlobContent -Container 'network-watcher-logs' -Blob '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/myresourcegroup/providers/microsoft.compute/virtualmachines/myvm/2024/01/25/packetcapture_22_44_54_342.cap' -Destination 'C:\Capture\myVM_1.cap'
Если указана учетная запись хранения, файлы записи сохраняются в учетной записи хранения по следующему пути:
https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachines/{virtualMachineName}/{year}/{month}/{day}/packetcapture_{UTCcreationTime}.cap
Чтобы скачать запись пакетов из хранилища Azure на локальный диск, используйте команду az storage blob download :
# Download the packet capture file from Azure storage container.
az storage blob download --container-name 'network-watcher-logs' --blob-url '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/myresourcegroup/providers/microsoft.compute/virtualmachines/myvm/2024/01/25/packetcapture_22_44_54_342.cap' --file 'C:\Capture\myVM_1.cap'
Примечание.
С помощью обозревателя хранилища Azure можно загрузить файлы захвата из контейнера учетной записи хранения. Обозреватель службы хранилища — это автономное приложение, которое удобно использовать для доступа и работы с данными служба хранилища Azure. Дополнительные сведения см. в разделе Начало работы с Storage Explorer.
Внимание
Во время сеанса захвата пакетов файл захвата может не сразу появиться в контейнере хранилища, так как он изначально сохраняется во временном расположении. Файл передается в окончательное расположение после завершения сеанса записи.
Чтобы скачать файл записи пакетов, сохраненный на виртуальной машине, подключитесь к виртуальной машине и скачайте файл из локального пути, указанного во время создания записи пакетов.
Удалить перехват пакетов
На странице отслеживания пакетов выберите ... в правой части записи пакетов, которую вы хотите удалить, или щелкните его правой кнопкой мыши, а затем нажмите кнопку "Удалить".
Выберите Да.
Удалите ресурс записи пакетов с помощью Remove-AzNetworkWatcherPacketCapture .
# Delete a packet capture resource.
Remove-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
Используйте az network watcher packet-capture delete для удаления ресурса записи пакетов.
# Delete a packet capture resource.
az network watcher packet-capture delete --location 'eastus' --name 'myVM_1'
Внимание
Удаление ресурса захвата пакетов в Network Watcher не удаляет файл захвата из учетной записи хранения или виртуальной машины. Если файл записи больше не нужен, его необходимо удалить вручную из учетной записи хранения или виртуальной машины.
Связанный контент