linux

Comando tcpdump en linux, ejemplos, opciones

¿Qué es tcpdump y para qué sirve?

tcpdump es una herramienta de línea de comandos que captura paquetes que atraviesan una interfaz de red. Utiliza la biblioteca libpcap (o WinPcap en Windows) para acceder al tráfico sin necesidad de una interfaz gráfica. Es ideal para diagnosticar problemas de conectividad, inspeccionar protocolos y auditar la seguridad de una red.

Instalación

En la mayoría de distribuciones modernas tcpdump ya está disponible en los repositorios oficiales.

  • Debian / Ubuntu:
    sudo apt update && sudo apt install -y tcpdump
  • Fedora / RHEL / CentOS:
    sudo dnf install -y tcpdump
  • Arch Linux:
    sudo pacman -S tcpdump

Después de la instalación, verifica la versión con tcpdump -V. En sistemas basados en Unix es necesario ejecutar el comando con privilegios de root (por ejemplo, sudo).

Sintaxis básica

La forma genérica es:

tcpdump [OPCIONES] [FILTROS]

Si no se especifica ningún filtro, tcpdump mostrará todos los paquetes que vea la interfaz elegida.

Opciones más útiles

  • -i <interfaz>: selecciona la interfaz (p. ej. -i eth0 o -i any para todas).
  • -c <número>: captura sólo n paquetes y termina.
  • -w <archivo.pcap>: escribe la captura en formato pcap para análisis posterior.
  • -r <archivo.pcap>: lee una captura previamente guardada.
  • -n: evita la resolución de nombres de host y puertos, acelerando la captura.
  • -v, -vv, -vvv: incrementa la verbosidad, mostrando campos adicionales como TTL o opciones TCP.
  • -X: muestra el contenido del paquete en hexadecimal y ASCII.
  • -A: muestra sólo la parte ASCII del paquete.
  • -s <bytes>: define el número máximo de bytes a capturar por paquete (0 = sin límite).
  • -D: lista todas las interfaces disponibles.

Filtros y expresiones

Los filtros siguen la sintaxis de libpcap. Los más habituales son:

  • host <IP>: paquetes cuyo origen o destino coincide con la IP.
  • src host <IP> / dst host <IP>: origen o destino exclusivamente.
  • net <red>/: cualquier dirección dentro de la subred.
  • port <número>: puerto origen o destino.
  • src port <número> / dst port <número>: filtrado unidireccional.
  • proto <protocolo>: tcp, udp, icmp, etc.
  • Combinaciones con operadores lógicos and, or, not y paréntesis.

Ejemplos prácticos

A continuación se presentan los comandos más habituales. Todos los ejemplos se ejecutan con sudo para garantizar los permisos necesarios.

1. Capturar tráfico de una IP origen

sudo tcpdump -i eth0 src host 192.168.3.1

2. Capturar tráfico hacia o desde una IP concreta

sudo tcpdump -i any host 192.168.3.2

3. Filtrar por dirección MAC de destino

sudo tcpdump -i eth0 ether dst 50:43:A5:AE:69:55

4. Capturar una subred completa

sudo tcpdump -i eth0 net 192.168.3.0/28

5. Capturar tráfico en un puerto específico (ej. Telnet 23)

sudo tcpdump -i any dst port 23

6. Capturar sólo paquetes ICMP (ping)

sudo tcpdump -i eth0 icmp

7. Capturar tráfico HTTP (puerto 80)

sudo tcpdump -i any tcp and port 80

8. Capturar peticiones DNS (UDP, puerto 53)

sudo tcpdump -i any udp and dst port 53

9. Excluir tráfico web y mostrar todo lo demás

sudo tcpdump -i any not port 80

10. Guardar la captura en un archivo para análisis posterior

sudo tcpdump -i eth0 -w /tmp/captura.pcap -s 0

11. Leer una captura guardada y mostrarla en detalle

sudo tcpdump -r /tmp/captura.pcap -vv -X

Problemas habituales y soluciones

  • Permiso denegado: ejecutar con sudo o conceder al usuario el grupo pcap (p. ej. sudo usermod -aG pcap $USER).
  • Demasiada salida: usar -c para limitar paquetes o -w para guardar sin imprimir.
  • Resolución lenta de nombres: añadir -n para evitar búsquedas DNS.
  • Captura incompleta: aumentar el snaplen con -s 0 (captura completa).
  • Interfaz no encontrada: listar interfaces con tcpdump -D y usar el nombre exacto.

Alternativas y complementos

Si prefieres una interfaz gráfica, Wireshark puede leer los archivos .pcap generados por tcpdump. En entornos Windows, la versión equivalente es WinDump, que utiliza la biblioteca WinPcap.

Comando tcpdump en linux, ejemplos, opciones

Con estos conceptos y ejemplos podrás comenzar a monitorizar tu red de forma eficaz, identificar cuellos de botella, detectar tráfico sospechoso y guardar evidencias para análisis técnicos posteriores.

Comando tcpdump en linux, ejemplos, opciones

Publicado

en

,

por

Etiquetas:

Comentarios

2 responses to “Comando tcpdump en linux, ejemplos, opciones”