Wireshark: qué es, análisis de tráfico y captura de paquetes

Autor: IT Sectr Publicado: 2026-05-08 Tiempo de lectura: 9 min

Wireshark es el analizador de tráfico de red de código abierto líder, utilizado para la captura e inspección de paquetes en tiempo real. La herramienta admite más de dos mil protocolos de red y funciona en todas las plataformas principales. Según la Wireshark User Guide (2026), la utilidad se utiliza para el diagnóstico de redes, la depuración de API y el análisis de seguridad en el desarrollo móvil y web.

Lo esencial

  • Wireshark es un sniffer de paquetes gratuito con interfaz gráfica para el análisis de tráfico de red.
  • La captura de tráfico se realiza a través de una interfaz de red en modo promiscuo a nivel de capa de enlace.
  • El filtrado de paquetes por IP, puerto, protocolo y contenido se implementa mediante el lenguaje BPF y los display filters.
  • El análisis de HTTPS requiere configurar SSLKEYLOGFILE o un proxy intermedio para descifrar sesiones.
  • La depuración móvil es posible mediante la combinación de tcpdump en el dispositivo y Remote Packet Capture.

Qué es Wireshark y cómo funciona

Wireshark es un programa de código abierto (GPLv2) que captura los paquetes de datos que pasan por la interfaz de red del ordenador. Se basa en la biblioteca libpcap (Unix) o Npcap (Windows) para la captura a nivel de capa de enlace del modelo OSI.

Principio de captura de paquetes

En modo normal, una tarjeta de red solo recibe las tramas dirigidas a su dirección MAC. Wireshark cambia la interfaz al modo promiscuo, en el que el sistema procesa todas las tramas que pasan independientemente del destinatario. Los datos capturados se transmiten al núcleo a través de un raw socket, tras lo cual la biblioteca libpcap los copia al espacio de usuario para su análisis.

Arquitectura de procesamiento

Wireshark utiliza una arquitectura modular: cada protocolo se implementa como un dissector independiente — un plugin que analiza datos binarios y los muestra de forma estructurada. A partir de 2026, el programa implementa dissectors para 2 874 protocolos, incluidos HTTP/2, QUIC, gRPC y MQTT. Los dissectors funcionan mediante el sistema de árbol de protocolos: cada paquete se analiza por capas: desde la trama Ethernet hasta el nivel de aplicación.

c
// Ejemplo de un dissector simple para un protocolo personalizado
static int dissect_custom(tvbuff_t *tvb, packet_info *pinfo,
        proto_tree *tree, void *data) {
    proto_item *ti = proto_tree_add_item(tree, hf_custom_field,
            tvb, 0, tvb_captured_length(tvb), ENC_NA);
    return 0;
}

Principales funciones de Wireshark

La interfaz gráfica de Wireshark se divide en tres paneles: lista de paquetes (packet list), detalles de protocolos (packet details) y volcado hexadecimal (packet bytes). Cada panel se actualiza en tiempo real y admite navegación interactiva: al hacer clic en una fila de paquete se abre su estructura completa.

Formatos y protocolos admitidos

La herramienta lee archivos de captura en formatos pcap, pcapng, snoop y NetMon. La exportación es posible a JSON, XML, CSV y texto plano. Entre los protocolos clave de nivel de aplicación se encuentran HTTP/HTTPS, DNS, DHCP, TCP, UDP, TLS, QUIC, WebSocket, MQTT, AMQP y Protobuf. Para el desarrollo móvil es especialmente importante la compatibilidad con gRPC y HTTP/2 con multiplexación de flujos.

Herramientas de análisis

Las utilidades integradas incluyen Follow Stream (recuperación del diálogo completo TCP/UDP/TLS), IO Graph (gráfico de rendimiento), estadísticas de conversaciones (Conversations) y jerarquía de protocolos (Protocol Hierarchy). La función Flow Graph visualiza la secuencia de paquetes entre nodos, lo que facilita encontrar las causas de los retrasos al depurar la interacción cliente-servidor.

Cómo capturar tráfico con Wireshark

El inicio de la captura comienza con la selección de una interfaz de red: Ethernet, Wi-Fi, Bluetooth PAN o Loopback. En Windows puede ser necesario instalar Npcap en WinPcap API Compatible Mode. Para capturar en dispositivos móviles se utiliza Remote Packet Capture a través de un túnel SSH.

Captura en un dispositivo remoto

En un dispositivo Android, el tráfico se captura con tcpdump o PCAPdroid y luego se transfiere el archivo al ordenador de trabajo. El comando para la captura remota mediante ADB:

bash
# Captura de tráfico en Android mediante ADB shell
adb shell tcpdump -i wlan0 -s 0 -w /sdcard/capture.pcap
# Copiar al ordenador
adb pull /sdcard/capture.pcap .

Captura de tráfico Loopback

En Windows, el tráfico de localhost (127.0.0.1) no pasa por una interfaz física, por lo que Wireshark no lo ve directamente. La solución es instalar Npcap con la opción Loopback Support o redirigir el tráfico mediante RawCap. En Linux y macOS, la interfaz loopback (lo) se captura sin configuración adicional.

Filtrado de paquetes en Wireshark

Wireshark ofrece dos tipos de filtros: capture filters (se aplican antes de la captura, a nivel de libpcap) y display filters (se aplican a los datos ya capturados). Los capture filters usan la sintaxis BPF (Berkeley Packet Filter), los display filters — el lenguaje propio de Wireshark con autocompletado.

Capture Filters (BPF)

Los filtros BPF se escriben en formato tcpdump y se ejecutan en el núcleo, lo que minimiza la pérdida de paquetes bajo alta carga. Ejemplos de filtros:

FiltroFunción
tcp port 80Solo tráfico HTTP en el puerto estándar
host 192.168.1.1Paquetes de un host específico
not arpTodos los paquetes excepto las peticiones ARP

Display Filters

Los display filters se aplican a posteriori y admiten condiciones complejas con los operadores lógicos and, or, not. Por ejemplo: http.request.method == "POST" and ip.src == 192.168.0.100 filtrará solo las peticiones POST de una IP específica. Los filtros se pueden guardar como favoritos para reutilizarlos.

Análisis de tráfico HTTP y HTTPS

El tráfico HTTP se muestra en Wireshark de forma legible: método de petición, URI, cabeceras y cuerpo de la respuesta. La función Follow TCP Stream recopila el diálogo completo entre cliente y servidor en una sola ventana. Para HTTPS se requiere el descifrado de sesiones TLS, ya que el contenido está cifrado.

Descifrado de HTTPS mediante SSLKEYLOGFILE

Los navegadores Chrome y Firefox admiten la variable de entorno SSLKEYLOGFILE, que escribe las claves de sesión TLS en un archivo de texto. Wireshark usa este archivo para descifrar los registros. La configuración se realiza a través de Preferences → Protocols → TLS → (Pre)-Master-Secret log filename.

bash
# Iniciar Chrome con registro de claves TLS
export SSLKEYLOGFILE=/tmp/sslkeys.log
google-chrome .

# Después de la captura, indicar la ruta en Wireshark
# Edit → Preferences → Protocols → TLS → Log Filename

Análisis de gRPC y Protobuf

gRPC usa HTTP/2 como transporte y Protobuf para la serialización de datos. Wireshark descifra los mensajes gRPC si se proporciona un archivo .proto con las definiciones de estructuras. El dissector Protobuf vincula los campos binarios con los nombres del archivo proto, lo que es fundamental al depurar una arquitectura de microservicios.

Depuración de aplicaciones móviles con Wireshark

La depuración móvil con Wireshark requiere redirigir el tráfico del dispositivo al ordenador. El método más fiable es crear un punto de acceso Wi-Fi en el portátil y redirigir el tráfico mediante NAT. En Android también está disponible el método VPN con la aplicación PCAPdroid sin necesidad de permisos root.

Configuración en Android sin root

PCAPdroid crea un servicio VPN local que redirige el tráfico de las aplicaciones a Wireshark a través de un flujo UDP. La aplicación no requiere acceso root y admite el filtrado por procesos individuales. Los archivos pcap obtenidos se abren en Wireshark para su análisis completo.

bash
# Recepción del tráfico de PCAPdroid en el ordenador
# PCAPdroid → Settings → PCAP dumper → UDP Exporter
nc -l -u 192.168.0.10 12345 > capture.pcap

Comparación de Wireshark con alternativas

Wireshark es una herramienta universal, pero para tareas concretas existen soluciones más especializadas. tcpdump es más eficaz para la captura de servidor sin gráficos, Charles Proxy es más cómodo para analizar tráfico HTTPS, y Fiddler — para la inspección de tráfico web con la posibilidad de modificar peticiones sobre la marcha.

Charles Proxy vs Wireshark

Charles Proxy actúa como un servidor proxy intermedio con la capacidad de interceptar HTTPS mediante su propia certificación SSL. A diferencia de Wireshark, Charles no requiere configurar SSLKEYLOGFILE y puede no solo ver, sino también modificar el tráfico: sustituir respuestas, emular retrasos y repetir peticiones.

Fiddler Everywhere

Fiddler es otra herramienta de proxy popular en el ecosistema .NET. Ofrece un editor de peticiones integrado, soporte de AutoResponder para mocks y un compositor para crear peticiones personalizadas. Fiddler es más adecuado para el análisis del tráfico web del navegador, y Wireshark — para el análisis de red de bajo nivel.

HerramientaTipoHTTPS sin clavesModificación de tráfico
WiresharkSnifferNo (necesita SSLKEYLOGFILE)Solo visualización
CharlesProxySí (certificado personalizado)
FiddlerProxySí (certificado personalizado)
tcpdumpSnifferNoSolo visualización

Consejos prácticos para trabajar con Wireshark

Wireshark requiere comprender los principios básicos de la captura de tráfico. Uno de los escenarios más frecuentes es buscar la fuente de los retrasos en una aplicación móvil mediante el filtro tcp.analysis.ack_rtt. Para encontrar peticiones HTTP lentas, use la condición http.time mayor que 1.

Búsqueda de peticiones lentas

Para buscar peticiones HTTP lentas, filtre http.time mayor que 1: Wireshark mostrará las peticiones con un tiempo de respuesta superior a 1 segundo. Combínelo con ip.addr para analizar un servidor concreto. Un IO Graph con intervalo de 1 segundo mostrará claramente los picos de carga.

Exportación e informes

Wireshark admite la exportación a CSV, JSON y XML a través del menú File. Para el análisis automático utilice tshark: la versión de consola que funciona en canalizaciones CI/CD. Tshark admite los mismos filtros y formatos de salida que la versión gráfica.

Consejos prácticos para trabajar con Wireshark

Wireshark requiere comprender los principios básicos de la captura de tráfico. Uno de los escenarios más frecuentes es buscar la fuente de los retrasos en una aplicación móvil mediante el filtro tcp.analysis.ack_rtt. Para encontrar peticiones HTTP lentas, use la condición http.time mayor que 1.

Búsqueda de peticiones lentas

Para buscar peticiones HTTP lentas, filtre http.time mayor que 1: Wireshark mostrará las peticiones con un tiempo de respuesta superior a 1 segundo. Combínelo con ip.addr para analizar un servidor concreto. Un IO Graph con intervalo de 1 segundo mostrará claramente los picos de carga.

Exportación e informes

Wireshark admite la exportación a CSV, JSON y XML a través del menú File. Para el análisis automático utilice tshark: la versión de consola que funciona en canalizaciones CI/CD. Tshark admite los mismos filtros y formatos de salida que la versión gráfica.

Preguntas frecuentes

¿En qué se diferencia Wireshark de tcpdump?

Wireshark ofrece una interfaz gráfica con visualización de paquetes, filtros integrados y estadísticas. tcpdump es una utilidad de consola sin GUI, cómoda para la captura de servidor por SSH. Wireshark puede leer archivos de tcpdump y viceversa.

¿Cómo interceptar tráfico HTTPS en Wireshark?

Para el descifrado se requiere un archivo de claves de sesión TLS (SSLKEYLOGFILE). Chrome y Firefox exportan las claves al iniciarse con la variable de entorno. La ruta al archivo se indica en la configuración Protocols → TLS de Wireshark.

¿Por qué Wireshark no ve el tráfico localhost en Windows?

El tráfico loopback en Windows no pasa por el controlador Npcap por defecto. La solución es instalar Npcap con la opción Loopback Support activada o utilizar la utilidad RawCap para capturar el tráfico local.

¿Se puede usar Wireshark para aplicaciones móviles?

Sí, mediante el redireccionamiento del tráfico al ordenador. Android admite la captura con PCAPdroid (sin root) o tcpdump (con root). iOS requiere RVI (Remote Virtual Interface) a través de macOS o jailbreak para la captura.

¿Cómo filtrar paquetes por contenido en Wireshark?

El display filter frame contains busca una cadena o secuencia hexadecimal en todo el paquete. Ejemplo: frame contains "password" encontrará paquetes con la subcadena password en cualquier campo. Para una búsqueda exacta por campo utilice http.request.uri contains "api".

Resumen

  • Wireshark es la herramienta principal para el análisis de tráfico de red en el desarrollo, que admite más de 2800 protocolos.
  • La captura de paquetes se realiza en modo promiscuo a través de la biblioteca libpcap o Npcap a nivel de acceso al medio.
  • El filtrado se divide en capture filters (BPF, a nivel del núcleo) y display filters (lenguaje de Wireshark, con autocompletado).
  • El descifrado HTTPS está disponible mediante SSLKEYLOGFILE para los navegadores Chrome y Firefox.
  • La depuración móvil se implementa con PCAPdroid (Android) o Remote Virtual Interface (iOS) sin necesidad de root.
  • gRPC y Protobuf se admiten mediante la carga de archivos .proto para deserializar datos binarios.
  • Flow Graph e IO Graph ayudan a visualizar los retrasos y encontrar los cuellos de botella en la interacción cliente-servidor.

Desarrollaremos una aplicación móvil llave en mano

IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.

Discutir el proyecto

Lea también