En este artículo, aprenderá a usar la característica de captura de paquetes de Azure Network Watcher para configurar, iniciar, detener, descargar y eliminar capturas de paquetes de forma remota.
Requisitos previos
Una cuenta de Azure con una suscripción activa.
Cree una cuenta gratuita.
Una máquina virtual o un conjunto de escalado de máquinas virtuales con conectividad TCP saliente a 169.254.169.254
a través del puerto 80
y 168.63.129.16
a través del puerto 8037
. La extensión de máquina virtual del agente de Network Watcher usa estas direcciones IP para comunicarse con la plataforma Azure.
Una extensión de máquina virtual del agente de Network Watcher instalada en la máquina virtual objetivo. Siempre que use la captura de paquetes de Network Watcher en Azure Portal, el agente se instalará automáticamente en la máquina virtual de destino o en el conjunto de escalado si no se instaló anteriormente. Para actualizar un agente que ya esté instalado, consulte Actualizar la extensión de Azure Network Watcher a la versión más reciente.
Una cuenta de almacenamiento de Azure con conectividad TCP saliente de máquina virtual con ella a través del puerto 443
. Si no tiene una cuenta de almacenamiento, consulte Creación de una cuenta de almacenamiento mediante Azure Portal.
- La cuenta de almacenamiento debe ser accesible desde la subred de la máquina virtual de destino o el conjunto de escalado. Para más información, vea Configuración de Firewalls y redes virtuales de Azure Storage.
- El acceso a la clave de la cuenta de almacenamiento debe estar habilitado para permitir solicitudes de Network Watcher mediante tokens de firma de acceso compartido (SAS).
Inicie sesión en Azure Portal con su cuenta de Azure.
Nota:
Azure crea una instancia de Network Watcher en la región de la máquina virtual si Network Watcher no se habilitó para esa región. Para obtener más información, consulte Habilitar o deshabilitar Azure Network Watcher.
Si un grupo de seguridad de red está asociado a la interfaz de red de la máquina virtual o a la subred en la que se encuentra la interfaz de red, asegúrese de que existan reglas para permitir la conectividad de salida. Del mismo modo, garantice la conectividad de salida al agregar rutas definidas por el usuario a su red.
Inicio de una captura de paquetes
Para iniciar una sesión de captura, siga estos pasos:
En el cuadro de búsqueda que aparece en la parte superior del portal, escriba Network Watcher. En los resultados de la búsqueda, seleccione Network Watcher.
Seleccione Captura de paquetes en Herramientas de diagnóstico de red y, a continuación, seleccione + Agregar para crear una captura de paquetes.
En Agregar captura de paquetes, escriba o seleccione valores para las configuraciones siguientes:
Configuración |
Importancia |
Detalles básicos |
|
Suscripción |
Seleccione la suscripción de Azure de la máquina virtual. |
Grupo de recursos |
Seleccione el grupo de recursos de la máquina virtual. |
Tipo de destino |
Seleccione Máquina virtual o Conjunto de escalado de máquinas virtuales. |
Conjunto de escalado de máquinas virtuales de destino |
Seleccione el conjunto de escalado de máquinas virtuales. Esta opción está disponible si selecciona Conjunto de escalado de máquinas virtuales como tipo de destino. |
Instancia de destino |
Seleccione la máquina virtual o la instancia de un conjunto de escalado. |
Nombre de la captura de paquetes |
Escriba un nombre o deje el nombre predeterminado. |
Configuración de captura de paquetes |
|
Ubicación de captura |
Seleccione Cuenta de almacenamiento (opción predeterminada), Archivo o Ambos. |
Cuenta de almacenamiento |
Seleccione la cuenta de almacenamiento estándar1. Esta opción está disponible si seleccionó Cuenta de almacenamiento o Ambos como ubicación de la captura. La cuenta de almacenamiento debe estar en la misma región que la instancia de destino. |
Ruta de acceso de archivo local |
Escriba una ruta de acceso de archivo local válida en la que desea que se guarde la captura en la máquina virtual de destino. Si usa una máquina Linux, la ruta de acceso puede comenzar con /var/captures . Si usa una máquina Windows, la ruta de acceso puede comenzar con C:\Captures . Esta opción está disponible si seleccionó Archivo o Ambos como ubicación de captura. |
Número máximo de bytes por paquete |
Escriba el número máximo de bytes que se capturarán por cada paquete. Si deja el valor en blanco o escribe 0, se capturarán todos los bytes. |
Número máximo de bytes por sesión |
Escriba el número total de bytes que se capturan. Una vez que se alcanza el valor, la captura de paquetes se detiene. Si deja el valor en blanco, se captura hasta 1 GB. |
Límite de tiempo (segundos) |
Escriba el límite de tiempo de la sesión de captura de paquetes en segundos. Una vez que se alcanza el valor, la captura de paquetes se detiene. Si se deja el valor en blanco, se captura hasta 5 horas (18 000 segundos). |
Filtrado (opcional) |
|
Agregar criterios de filtro |
Seleccione Agregar criterios de filtro para agregar un filtro nuevo. Puede definir tantos filtros como desee. |
Protocolo |
Filtra la captura de paquetes en función del protocolo seleccionado. Los valores disponibles son TCP, UDP o Cualquiera. |
Dirección IP local2 |
filtra la captura de paquetes para los paquetes en los que la dirección IP local coincide con este valor. |
Puerto local2 |
filtra la captura de paquetes para los paquetes en los que el puerto local coincide con este valor. |
Dirección IP remota2 |
filtra la captura de paquetes para los paquetes en los que la dirección IP remota coincide con este valor. |
Puerto remoto2 |
filtra la captura de paquetes para los paquetes en los que el puerto remoto coincide con este valor. |
1 Actualmente, las cuentas de almacenamiento Premium no se admiten para almacenar capturas de paquetes.
2 Los valores de dirección IP y puerto pueden ser un solo valor, un rango como 80-1024 o varios valores como 80, 443.
Seleccione Iniciar captura de paquetes.
La captura de paquetes se detiene una vez que se alcanza el límite de tiempo o el tamaño de archivo (bytes máximos por sesión).
Para iniciar una sesión de captura, usa el cmdlet 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
Una vez iniciada la sesión de captura, verás la siguiente salida:
ProvisioningState Name BytesToCapturePerPacket TotalBytesPerSession TimeLimitInSeconds
----------------- ---- ----------------------- -------------------- ------------------
Succeeded myVM_1 0 1073741824 18000
En la tabla siguiente se describen los parámetros opcionales que puede usar con el cmdlet New-AzNetworkWatcherPacketCapture:
Parámetro |
descripción |
-Filter |
Agrega filtros para capturar solo el tráfico que desees. Por ejemplo, solo puedes capturar el tráfico TCP de una dirección IP específica a un puerto específico. |
-TimeLimitInSeconds |
Establece la duración máxima de la sesión de captura. El valor predeterminado es de 18000 segundos (5 horas). |
-BytesToCapturePerPacket |
Establece el número máximo de bytes que se capturarán por cada paquete. Todos los bytes se capturan si no se usan o se escribe 0. |
-TotalBytesPerSession |
Establece el número total de bytes que se capturan. Una vez que se alcanza el valor, la captura de paquetes se detiene. Si no se usa, se capturan hasta 1 GB (1073 741 824 bytes). |
-LocalFilePath |
Escribe una ruta de acceso de archivo local válida si deseas que la captura se guarde en la máquina virtual de destino (por ejemplo, C:\Capture\myVM_1.cap). Si usa una máquina Linux, la ruta de acceso debe comenzar con /var/captures. |
La captura de paquetes se detiene una vez que se alcanza el límite de tiempo o el tamaño de archivo (bytes máximos por sesión).
Para iniciar una sesión de captura, utilice el comando az network watcher packet-capture create:
# 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'
Una vez iniciada la sesión de captura, verás la siguiente salida:
{
"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
}
En la tabla siguiente se describen los parámetros opcionales que puede usar con el comando az network watcher packet-capture create:
Parámetro |
descripción |
--filters |
Agrega filtros para capturar solo el tráfico que desees. Por ejemplo, solo puedes capturar el tráfico TCP de una dirección IP específica a un puerto específico. |
--time-limit |
Establece la duración máxima de la sesión de captura. El valor predeterminado es de 18000 segundos (5 horas). |
--capture-size |
Establece el número máximo de bytes que se capturarán por cada paquete. Todos los bytes se capturan si no se usan o se escribe 0. |
--capture-limit |
Establece el número total de bytes que se capturan. Una vez que se alcanza el valor, la captura de paquetes se detiene. Si no se usa, se capturan hasta 1 GB (1073 741 824 bytes). |
--file-path |
Escribe una ruta de acceso de archivo local válida si deseas que la captura se guarde en la máquina virtual de destino (por ejemplo, C:\Capture\myVM_1.cap). Si usa una máquina Linux, la ruta de acceso debe comenzar con /var/captures. |
La captura de paquetes se detiene una vez que se alcanza el límite de tiempo o el tamaño de archivo (bytes máximos por sesión).
Detención de una captura de paquetes
Para detener manualmente una sesión de captura de paquetes antes de que alcance sus límites de tiempo o de tamaño de archivo, seleccione los puntos suspensivos … en el lado derecho de la captura de paquetes o haga clic con el botón derecho en ella y, a continuación, seleccione Detener.
Para detener manualmente una sesión de captura de paquetes antes de alcanzar sus límites de tiempo o de tamaño de archivo, use el cmdlet Stop-AzNetworkWatcherPacketCapture.
# Manually stop a packet capture session.
Stop-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
Nota:
El cmdlet no devuelve una respuesta si se ejecutó en una sesión de captura que se está ejecutando actualmente o en una sesión que ya se ha detenido.
Para detener manualmente una sesión de captura de paquetes antes de alcanzar sus límites de tiempo o de tamaño de archivo, use el comando az network watcher packet-capture stop.
# Manually stop a packet capture session.
az network watcher packet-capture stop --location 'eastus' --name 'myVM_1'
Nota:
El comando no devuelve una respuesta si se ejecutó en una sesión de captura que se está ejecutando actualmente o en una sesión que ya se ha detenido.
Visualización del estado de la captura de paquetes
Vaya a la página Captura de paquetes de Network Watcher para enumerar las capturas de paquetes existentes con independencia de su estado.
Usa el cmdlet Get-AzNetworkWatcherPacketCapture para recuperar el estado de una captura de paquetes (en ejecución o completada).
# Get information, properties, and status of a packet capture.
Get-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
La salida siguiente es un ejemplo de la salida del cmdlet Get-AzNetworkWatcherPacketCapture
. El ejemplo siguiente es una vez completada la captura. El valor de PacketCaptureStatus es Stopped, con un valor de StopReason de TimeExceeded. Este valor muestra que la captura de paquetes fue correcta y agotó su tiempo.
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
Nota:
Para obtener más detalles en la salida, agrega | Format-List
al final del comando.
Utilice el comando az network watcher packet-capture show-status para recuperar el estado de una captura de paquetes (en ejecución o completada).
# Get information, properties, and status of a packet capture.
az network watcher packet-capture show-status --location 'eastus' --name 'myVM_1'
El ejemplo siguiente es la salida del comando az network watcher packet-capture show-status
. Puede ver que el valor de packetCaptureStatus es Stopped, con un valor de StopReason de TimeExceeded:
{
"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"
}
Descarga de una captura de paquetes
Una vez completada la sesión de captura de paquetes, el archivo de captura resultante se guarda en Azure Storage, un archivo local en la máquina virtual de destino o ambos. El destino de almacenamiento de la captura de paquetes se especifica durante su creación. Para más información, consulte la sección Inicio de una captura de paquetes.
Para descargar un archivo de captura de paquetes guardado en Azure Storage, siga estos pasos:
En la página Captura de paquetes, seleccione la captura de paquetes de la que desee descargar el archivo.
En la sección Detalles, seleccione el vínculo del archivo de captura de paquetes.
En la página del blob, seleccione Descargar.
También puede descargar archivos de captura si va directamente al contenedor de la cuenta de almacenamiento en la siguiente ruta de acceso:
https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachines/{virtualMachineName}/{year}/{month}/{day}/packetcapture_{UTCcreationTime}.cap
Si se especifica una cuenta de almacenamiento, los archivos de captura se guardan en la cuenta de almacenamiento en la siguiente ruta de acceso:
https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachines/{virtualMachineName}/{year}/{month}/{day}/packetcapture_{UTCcreationTime}.cap
Para descargar una captura de paquetes desde Azure Storage, utilice el cmdlet 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'
Si se especifica una cuenta de almacenamiento, los archivos de captura se guardan en la cuenta de almacenamiento en la siguiente ruta de acceso:
https://{storageAccountName}.blob.core.windows.net/network-watcher-logs/subscriptions/{subscriptionId}/resourcegroups/{storageAccountResourceGroup}/providers/microsoft.compute/virtualmachines/{virtualMachineName}/{year}/{month}/{day}/packetcapture_{UTCcreationTime}.cap
Para descargar una captura de paquetes de Azure Storage en el disco local, utilice el comando 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'
Nota:
Puede usar el Explorador de Azure Storage para descargar los archivos de captura del contenedor de la cuenta de almacenamiento. Explorador de Storage es una aplicación independiente que se puede usar convenientemente para acceder a los datos de Azure Storage y trabajar con ellos. Para obtener más información, consulte Introducción a Explorador de Storage.
Importante
Durante la sesión de captura de paquetes, es posible que el archivo de captura no aparezca inmediatamente en el contenedor de la cuenta de almacenamiento porque se guarda inicialmente en una ubicación temporal. El archivo se transfiere a su ubicación final una vez completada la sesión de captura.
Para descargar un archivo de captura de paquetes guardado en la máquina virtual (VM), conéctese a esta y descárguelo de la ruta de acceso local especificada durante la creación de la captura de paquetes.
Eliminación de una captura de paquetes
En la página Captura de paquetes, seleccione … en el lado derecho de la captura de paquetes que desea eliminar, o bien haga clic con el botón derecho en ella y, a continuación, seleccione Eliminar.
Seleccione Sí.
Utilice Remove-AzNetworkWatcherPacketCapture para eliminar un recurso de captura de paquetes.
# Delete a packet capture resource.
Remove-AzNetworkWatcherPacketCapture -Location 'eastus' -PacketCaptureName 'myVM_1'
Utilice az network watcher packet-capture delete para eliminar un recurso de captura de paquetes.
# Delete a packet capture resource.
az network watcher packet-capture delete --location 'eastus' --name 'myVM_1'
Importante
La eliminación del recurso de captura de paquetes en Network Watcher no elimina el archivo de captura de la cuenta de almacenamiento o la máquina virtual. Si el archivo de captura ya no fuese necesario, deberá eliminarlo manualmente de la cuenta de almacenamiento o de la máquina virtual.
Contenido relacionado