// DevOps

Resolución de problemas de red para principiantes: Parte 5 — tcpdump, sngrep y Wireshark

Publicado el 22.09.2026

A veces todas las comprobaciones pasan: ping responde, DNS funciona, los puertos están abiertos, mtr no muestra pérdidas, pero la aplicación aún recibe errores como connection reset by peer o TLS handshake failed. En esos casos queda mirar los propios paquetes: capturar el tráfico y analizar qué ocurre en la conexión. En esta parte — tres herramientas: tcpdump para captura, sngrep para SIP y Wireshark para el análisis.

tcpdump: captura de paquetes

tcpdump está en casi cualquier distribución de Linux. Muestra paquetes en la consola y puede guardarlos en un archivo en formato pcap para análisis posterior.

Lista de interfaces en las que se puede capturar tráfico:

bash
sudo tcpdump -D

Tráfico con un nodo concreto:

bash
sudo tcpdump -ni eth0 host 203.0.113.10

La opción -n desactiva la resolución de direcciones y puertos a nombres: la salida es más rápida y no genera consultas DNS del propio tcpdump.

Solo HTTPS:

bash
sudo tcpdump -ni eth0 tcp port 443

Solo consultas y respuestas DNS:

bash
sudo tcpdump -ni eth0 port 53

Guardar el tráfico en un archivo para Wireshark:

bash
sudo tcpdump -ni eth0 -w /tmp/capture.pcap

Limitar el volumen para no llenar el disco:

bash
# detenerse después de 1000 paquetes
sudo tcpdump -ni eth0 -c 1000 -w /tmp/capture.pcap

# iniciar un archivo nuevo cada 60 segundos; el nombre del archivo se asigna según la plantilla strftime
sudo tcpdump -ni eth0 -G 60 -w '/tmp/capture-%Y-%m-%d_%H-%M-%S.pcap'

La longitud de la parte capturada del paquete por defecto es 262144 bytes, es decir, los paquetes se guardan íntegros. El parámetro -s 0 en instrucciones antiguas era necesario para versiones con un valor predeterminado pequeño; en las versiones modernas significa el mismo valor por defecto.

Los filtros de tcpdump (host, port, tcp, udp y sus combinaciones con and, or, not) son filtros de captura: los paquetes que no coincidan no entran en el archivo en absoluto.

sngrep: diálogos SIP en la terminal

sngrep está pensado para depurar telefonía: agrupa paquetes SIP en llamadas y los muestra como un diálogo — REGISTER, INVITE, respuestas 100 Trying, 180 Ringing, 200 OK, etc. Es más cómodo que analizar SIP en la salida de tcpdump.

bash
sudo apt install sngrep
sudo sngrep                 # captura en tiempo real
sudo sngrep port 5060       # solo SIP en el puerto estándar
sngrep -I /tmp/capture.pcap # abrir un archivo guardado

En la interfaz se selecciona la llamada con las flechas, Enter abre el esquema de intercambio de mensajes.

Wireshark: análisis de la grabación

Wireshark es un analizador de paquetes gráfico. Flujo de trabajo conveniente con un servidor: capturar el tráfico con tcpdump en el servidor, descargar el archivo y abrirlo en Wireshark en tu equipo.

bash
scp user@server:/tmp/capture.pcap .
wireshark capture.pcap

Los filtros de visualización se establecen en la barra de filtros sobre la lista de paquetes:

  • http.request — solo solicitudes HTTP;
  • tls.handshake — mensajes del handshake TLS;
  • dns — consultas y respuestas DNS;
  • tcp.flags.reset == 1 — paquetes con reinicio de conexión;
  • ip.addr == 203.0.113.10 — tráfico con una dirección concreta.

El comando Follow → TCP Stream en el menú contextual reúne los paquetes de una conexión en un diálogo secuencial.

No confunda los dos tipos de filtros: los filtros de captura (sintaxis BPF, como en tcpdump: port 443) determinan qué entrará en el archivo, mientras que los filtros de visualización de Wireshark (tls.handshake) solo ocultan lo irrelevante en los datos ya grabados. Su sintaxis es diferente.

Cuándo usar cada herramienta

InstrumentoPara quéDónde
tcpdumpcaptura de tráfico, vista rápida, grabación en archivoservidor sin entorno gráfico
sngrepllamadas SIP y registrosservidores de telefonía
Wiresharkanálisis detallado de la grabación, protocolos, flujosequipo de trabajo

Errores típicos

  1. Ejecutarlo sin privilegios root — la captura en una interfaz requiere sudo o permisos adecuados.
  2. Capturar en la interfaz equivocada — en un servidor con varias interfaces, VPN o Docker el tráfico puede no pasar por eth0. Lista — tcpdump -D, todas las interfaces a la vez — -i any.
  3. Grabar sin límites — sin -c o -G el archivo en un servidor cargado crece muy rápido.
  4. Confundir filtros de captura y de visualización — tienen sintaxis diferente.
  5. Esperar ver el contenido de HTTPS — en tráfico cifrado se ven direcciones, puertos, el handshake y el nombre del sitio en SNI, pero no el contenido de las peticiones.
  6. Capturar tráfico ajeno — captura solo el tráfico de tus sistemas o con permiso del propietario.

Conclusión

El análisis de paquetes es el último paso de diagnóstico cuando las demás utilidades no responden. Muestra qué ocurre realmente en la conexión: quién corta la conexión, en qué etapa falla la negociación TLS, si llegan las respuestas. Para practicar es útil grabar y analizar una petición normal a un sitio: consulta DNS, establecimiento de la conexión TCP, negociación TLS.

Para comprobar conexiones individuales manualmente será útil netcat.

Recursos

// Contact

¿Necesitas ayuda?

Escríbeme y te ayudaré a resolver el problema

Respondo en un día laborable (03:00-13:00 GMT)

Или оставьте заявку здесь:

Confirme que no es un bot.

Escribir y recibir una respuesta rápida