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 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.
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.
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.
// 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;
}
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.
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.
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.
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.
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:
# 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 .
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.
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.
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:
| Filtro | Función |
|---|---|
| tcp port 80 | Solo tráfico HTTP en el puerto estándar |
| host 192.168.1.1 | Paquetes de un host específico |
| not arp | Todos los paquetes excepto las peticiones ARP |
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.
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.
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.
# 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
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.
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.
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.
# 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
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 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 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.
| Herramienta | Tipo | HTTPS sin claves | Modificación de tráfico |
|---|---|---|---|
| Wireshark | Sniffer | No (necesita SSLKEYLOGFILE) | Solo visualización |
| Charles | Proxy | Sí (certificado personalizado) | Sí |
| Fiddler | Proxy | Sí (certificado personalizado) | Sí |
| tcpdump | Sniffer | No | Solo visualización |
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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
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.
Lea también