
Visualizador de tráfico de red centrado en grafos para captura en vivo y reproducción de PCAP con comparación de puntos de control, trazado de rutas y filtros de visualización estilo Wireshark para análisis de seguridad.
PacMap es un visualizador de tráfico de red basado en grafos para captura en vivo y reproducción de PCAP que te ayuda a ver qué cambió, qué es ruidoso y qué inspeccionar a continuación.
Piénsalo como Git para el comportamiento de red: instantánea, diff y reproducción visual del estado de la red.

PacMap admite dos flujos de trabajo:
.pcap o .pcapng guardado y reproduce el flujo de paquetes a lo largo del tiempo.Desde la raíz del repositorio:
python3 -m venv venv
source venv/bin/activate
pip install websockets scapy
npm install --prefix client
En Windows, crea y activa un venv usando tu flujo de trabajo normal de Python, luego instala los mismos paquetes. La captura de paquetes en Windows requiere Npcap.
Inicia PacMap desde la raíz del repositorio:
npm start -- --iface en0
Ejemplos comunes de interfaces:
en0eth0wlan0Abre:
http://127.0.0.1:5176
Luego usa el panel de control para iniciar la captura en vivo.
La captura de paquetes en bruto normalmente requiere privilegios locales elevados. En macOS/Linux:
sudo npm start -- --iface en0
En Windows, ejecuta la terminal como Administrador.
Abre la aplicación web, cambia la fuente a Reproducción de PCAP y sube un archivo .pcap o .pcapng. Luego usa:
La reproducción se ejecuta en el navegador y no requiere que el servidor de captura Python esté en ejecución.
La reproducción incluye paneles de investigación para conversaciones, puntos finales, desglose de protocolos, resolución de nombres y actividad de la línea de tiempo de E/S.
Límites de archivo: 100 MB y 100 000 paquetes. Las tramas no compatibles se omiten y se contabilizan en la interfaz de usuario.
Soporte actual de reproducción:
.pcap clásico y .pcapng básicoTanto la Captura en Vivo como la Reproducción admiten una barra de filtro de visualización estilo Wireshark. Escribe un filtro y presiona Enter para aplicarlo; borra el campo y presiona Enter para eliminarlo.
Sintaxis admitida:
tcp udp dns http arp
ip.addr == 192.168.1.10
ip.src == 10.0.0.1
ip.dst == 8.8.8.8
tcp.port == 443
udp.port == 53
port == 80
ip.src == 10.0.0.1 && ip.dst == 8.8.8.8
Los filtros compuestos (&&) combinan dos filtros de campo. Aplicar un filtro reduce el gráfico a los nodos y aristas coincidentes; borrarlo restaura la vista completa para la ventana de captura actual.
Un filtro compuesto ip.src == X && ip.dst == Y activa el trazado de rutas. PacMap ejecuta BFS sobre la captura completa para encontrar la cadena de saltos entre los dos puntos finales. Aparece un panel debajo del panel de control que muestra cada salto con conteos de paquetes y bytes por arista, y los nodos intermedios se resaltan en el gráfico.
Los puntos de control capturan el estado actual de la red — nodos, aristas, volúmenes de tráfico — en un momento determinado.
Los puntos de control persisten en localStorage bajo pacmap_checkpoints (hasta 50 entradas).
Los navegadores no pueden olfatear el tráfico de red del host ni iniciar la captura privilegiada de paquetes directamente. PacMap utiliza un ayudante local de Python WebSocket con Scapy para la captura en vivo, luego transmite resúmenes de paquetes a la aplicación React en:
ws://127.0.0.1:8765
La reproducción de PCAP es diferente: el navegador lee el archivo subido y reutiliza la misma visualización de gráfico sin necesidad de acceso a paquetes en vivo.
Solo frontend:
cd client
npm install
npm run dev
Compilación de producción:
npm run build
Solo servidor de captura:
source venv/bin/activate
python3 server.py --iface en0
server.py no se está ejecutando o el puerto WebSocket no está disponible.ping 8.8.8.8, consultas DNS u otra actividad de red.