
Visualizzatore di traffico di rete basato sui grafi per cattura live e replay di PCAP con confronto di checkpoint, tracciamento dei percorsi e filtri di visualizzazione stile Wireshark per analisi di sicurezza.
PacMap è un visualizzatore di traffico di rete basato su grafi per la cattura in tempo reale e la riproduzione di PCAP, che aiuta a vedere cosa è cambiato, cosa è rumoroso e cosa ispezionare dopo.
Pensalo come Git per il comportamento di rete: istantanee, differenze e riproduzione visiva dello stato della rete.

PacMap supporta due flussi di lavoro:
.pcap o .pcapng salvato e riproduce il flusso di pacchetti nel tempo.Dalla radice del repository:
python3 -m venv venv
source venv/bin/activate
pip install websockets scapy
npm install --prefix client
Su Windows, crea e attiva un venv usando il tuo normale flusso di lavoro Python, poi installa gli stessi pacchetti. La cattura di pacchetti su Windows richiede Npcap.
Avvia PacMap dalla radice del repository:
npm start -- --iface en0
Esempi di interfacce comuni:
en0eth0wlan0Apri:
http://127.0.0.1:5176
Poi usa il dock di controllo per avviare la cattura in tempo reale.
La cattura grezza di pacchetti di solito richiede privilegi locali elevati. Su macOS/Linux:
sudo npm start -- --iface en0
Su Windows, esegui il terminale come amministratore.
Apri l'app web, passa la sorgente a Riproduzione PCAP e carica un file .pcap o .pcapng. Poi usa:
La riproduzione viene eseguita nel browser e non richiede che il server di cattura Python sia in esecuzione.
La riproduzione include pannelli di indagine per conversazioni, endpoint, suddivisione dei protocolli, risoluzione dei nomi e attività della timeline I/O.
Limiti dei file: 100 MB e 100.000 pacchetti. I frame non supportati vengono saltati e contati nell'interfaccia utente.
Supporto attuale per la riproduzione:
.pcap classico e .pcapng baseSia la Cattura in tempo reale che la Riproduzione supportano una barra dei filtri di visualizzazione stile Wireshark. Digita un filtro e premi Invio per applicarlo; cancella il campo e premi Invio per rimuoverlo.
Sintassi supportata:
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
I filtri composti (&&) combinano due filtri di campo. Applicare un filtro restringe il grafico ai nodi e ai bordi corrispondenti; cancellarlo ripristina la vista completa per la finestra di cattura corrente.
Un filtro composto ip.src == X && ip.dst == Y attiva il tracciamento del percorso. PacMap esegue BFS sull'intera cattura per trovare la catena di hop tra i due endpoint. Un pannello appare sotto il dock di controllo che mostra ogni hop con conteggi di pacchetti e byte per bordo, e i nodi intermedi vengono evidenziati nel grafico.
I checkpoint catturano lo stato corrente della rete — nodi, bordi, volumi di traffico — in un punto nel tempo.
I checkpoint persistono in localStorage sotto pacmap_checkpoints (fino a 50 voci).
I browser non possono sniffare il traffico di rete dell'host o avviare la cattura privilegiata di pacchetti direttamente. PacMap utilizza un helper locale Python WebSocket con Scapy per la cattura in tempo reale, quindi trasmette i sommari dei pacchetti all'app React a:
ws://127.0.0.1:8765
La riproduzione PCAP è diversa: il browser legge il file caricato e riutilizza la stessa visualizzazione del grafico senza necessità di accesso live ai pacchetti.
Solo frontend:
cd client
npm install
npm run dev
Build di produzione:
npm run build
Solo server di cattura:
source venv/bin/activate
python3 server.py --iface en0
server.py non è in esecuzione o la porta WebSocket non è disponibile.ping 8.8.8.8, lookup DNS o altre attività di rete.