Introducción
tcpdump es un potente analizador de paquetes de línea de comandos disponible en prácticamente todos los sistemas Linux. Captura y muestra paquetes de red en tiempo real, lo que lo convierte en una herramienta esencial para depurar problemas de conectividad, verificar reglas de firewall y analizar patrones de tráfico.
Instalación
sudo apt install tcpdump # Debian/Ubuntu
sudo yum install tcpdump # AlmaLinux/RHEL
Captura básica
sudo tcpdump
Esto captura todo el tráfico en la interfaz predeterminada. Presione Ctrl+C para detener.
Capturar en una interfaz específica
sudo tcpdump -i eth0
Listar interfaces disponibles
sudo tcpdump -D
Filtros comunes
Filtrar por host
sudo tcpdump host 203.0.113.50
sudo tcpdump src 203.0.113.50
sudo tcpdump dst 203.0.113.50
Filtrar por puerto
sudo tcpdump port 80
sudo tcpdump port 443
sudo tcpdump port 22
Filtrar por protocolo
sudo tcpdump icmp
sudo tcpdump tcp
sudo tcpdump udp
Combinar filtros
sudo tcpdump host 203.0.113.50 and port 443
sudo tcpdump src 10.0.0.1 and dst port 80
sudo tcpdump 'port 80 or port 443'
Filtrar por red (subred)
sudo tcpdump net 192.168.1.0/24
Opciones útiles
| Opción | Descripción |
|---|---|
-c 100 |
Capturar solo 100 paquetes y detenerse |
-n |
No resolver nombres de host (salida más rápida) |
-nn |
No resolver nombres de host ni nombres de puertos |
-v / -vv
|
Salida detallada / muy detallada |
-X |
Mostrar contenido del paquete en hexadecimal y ASCII |
-A |
Mostrar contenido del paquete solo en ASCII (útil para HTTP) |
-w archivo.pcap |
Guardar la captura en un archivo (para análisis posterior en Wireshark) |
-r archivo.pcap |
Leer y analizar una captura guardada previamente |
Ejemplos prácticos
Depurar tráfico HTTP
sudo tcpdump -i eth0 -A -nn port 80 -c 50
Capturar consultas DNS
sudo tcpdump -i eth0 -nn port 53
Verificar si el tráfico llega a su servidor en un puerto específico
sudo tcpdump -i eth0 -nn dst port 3306 -c 10
Si no aparecen paquetes, es probable que el tráfico esté siendo bloqueado por un firewall antes de llegar al servidor.
Guardar una captura para análisis posterior
sudo tcpdump -i eth0 -w /tmp/captura.pcap -c 1000
Puede abrir captura.pcap en Wireshark para un análisis gráfico.
Monitorear tráfico entre dos hosts
sudo tcpdump -i eth0 -nn host 10.0.0.1 and host 10.0.0.2
Interpretar la salida
10:30:45.123456 IP 203.0.113.50.54321 > 93.184.216.34.443: Flags [S], seq 1234567890, win 65535, length 0
| Campo | Significado |
|---|---|
10:30:45.123456 |
Marca de tiempo |
203.0.113.50.54321 |
IP y puerto de origen |
93.184.216.34.443 |
IP y puerto de destino |
Flags [S] |
Bandera TCP SYN (inicio de conexión) |
Banderas TCP comunes
| Bandera | Significado |
|---|---|
[S] |
SYN — Solicitud de conexión |
[S.] |
SYN-ACK — Conexión aceptada |
[.] |
ACK — Confirmación |
[P.] |
PSH-ACK — Envío de datos |
[F.] |
FIN-ACK — Cierre de conexión |
[R] |
RST — Reinicio de conexión |