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 en: 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.
La extensión de la máquina virtual del agente de Network Watcher está instalada en la máquina virtual de destino. 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 desde la máquina virtual 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 a través de la subred de la máquina virtual de destino o el conjunto de escalado de máquinas virtuales. 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.
Una cuenta de Azure con una suscripción activa.
Cree una cuenta gratuita.
Una máquina virtual 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.
La extensión de la máquina virtual del agente de Network Watcher está instalada en la máquina virtual de destino. Para más información, consulte Administración de la extensión de máquina virtual del agente de Network Watcher para Windows o Administración de la extensión de máquina virtual del agente de Network Watcher para Linux.
Una cuenta de almacenamiento de Azure con conectividad TCP saliente desde la máquina virtual a través del puerto 443. Si no tiene una cuenta de almacenamiento, consulte Creación de una cuenta de almacenamiento mediante PowerShell.
- La cuenta de almacenamiento debe ser accesible a través de la subred de la máquina virtual de destino o el conjunto de escalado de máquinas virtuales. 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).
Azure Cloud Shell o Azure PowerShell.
Los pasos de este artículo ejecutarán los cmdlets de Azure PowerShell de forma interactiva en Azure Cloud Shell. Para ejecutar los comandos en Cloud Shell, seleccione Abrir Cloud Shell en la esquina superior derecha de un bloque de código. Seleccione Copiar para copiar el código y péguelo, a continuación, en Cloud Shell para ejecutarlo. También podrá ejecutar Cloud Shell desde Azure Portal.
También podrá instalar Azure PowerShell localmente para ejecutar los cmdlet. En este artículo se necesita el módulo Az de PowerShell. Para más información, vea Procedimiento para instalar Azure PowerShell. Si ejecuta PowerShell localmente, inicie sesión en Azure con el cmdlet Connect-AzAccount.
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. |
| Máquina virtual de destino |
Seleccione la máquina virtual. Esta opción está disponible si selecciona Máquina virtual como tipo de destino. |
| 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 instancia del 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. |
| Nombre de la captura de paquetes |
Escriba un nombre o deje el nombre predeterminado. |
|
Almacenamiento de captura de paquetes |
|
| Ubicación de captura |
Seleccione en la cuenta de almacenamiento (opción predeterminada), en el almacenamiento de archivos local o en Ambos. |
| Cuentas de almacenamiento |
Seleccione la cuenta de almacenamiento estándar1. Esta opción está disponible si selecciona en la cuenta de almacenamiento o Ambas como ubicación de 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 selecciona en el almacenamiento de archivos local o En ambos como ubicación de captura. |
|
Configuración de captura de paquetes |
|
| Habilitación de la captura continua3 |
Active esta casilla si desea habilitar la captura continua de paquetes. Para obtener más información, consulte Captura continua de paquetes. |
| 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. |
| Nuevos archivos creados3 |
Escriba el número máximo de archivos creados. El valor predeterminado es de 100 MB y el valor máximo es de 4 GB. Esta opción está disponible si habilita la captura continua. |
| Bytes por archivo3 |
Escriba el número de bytes por archivo. Una vez alcanzado el valor, se crea un nuevo archivo. |
| 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 en blanco: - Se capturan hasta 5 horas (18 000 segundos) sin habilitar la captura continua. - Se captura hasta 1 día (86 400 segundos) si habilita la captura continua. El valor máximo es 604 800 segundos (7 días). |
|
Filtrado de paquetes (opcional) |
|
| Filtrado de paquetes |
Seleccione Habilitar filtrado de paquetes para habilitar el filtrado de paquetes. |
| Agregar un 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.
3 La captura continua está actualmente en fase de vista previa. Para obtener más información, consulte Captura continua de paquetes.
Seleccione Iniciar captura de paquetes.
La captura de paquetes se detiene una vez alcanzado el límite de tiempo.
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).
Detener 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 exitosa y se completó en el tiempo previsto.
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