
Flows-first PCAP TUI (archivos de casos, magnífica UX). Do do do do.
Wireshark hecho fácil (en tu terminal).
Babyshark es una TUI de PCAP que te ayuda a responder:
Estado: v0.3.0 (alfa).
.pcap / .pcapng funciona sin Wiresharktshark (CLI de Wireshark)
El resumen es el panel "empieza aquí". Resume la captura y sugiere qué hacer a continuación.
tshark).Cómo usarlo:
D para saltar a Dominios (primero nombres de host).W para saltar a ¿Qué es extraño? (detectores seleccionados).F (o f) para saltar a Flujos (en bruto).
Dominios agrupa el tráfico por nombre de host para que puedas empezar desde los nombres en lugar de 5‑tuplas.
Cómo usarlo:
s para cambiar el modo de ordenación.c para limpiar un filtro de subconjunto activo.
¿Qué es extraño? es un conjunto seleccionado de detectores diseñado para responder "¿qué se ve roto/lento?" sin necesidad de conocimientos profundos de Wireshark.
Cómo usarlo:
1–9 para saltar-seleccionar) y presiona Enter.c para limpiar un filtro de subconjunto activo.
Expandir / Explicar (?) proporciona contexto en lenguaje sencillo para lo que estás viendo.
? para abrir Explicar.Consejo: presiona h para ayuda y g para glosario.
Obtén un binario de los lanzamientos de GitHub:
git clone https://github.com/vignesh07/babyshark
cd babyshark/rust
cargo install --path . --force
babyshark --help
.pcap / .pcapng y navega:
n / NDL/UL en la lista de flujos + descarga-pesada/subida-pesada/equilibrado en detalles (se usa A>B/B>A cuando el lado local es ambiguo)T):
Descarga un binario precompilado:
Requisitos previos:
tsharkgit clone https://github.com/vignesh07/babyshark
cd babyshark/rust
cargo install --path . --force
babyshark --help
cargo install --git https://github.com/vignesh07/babyshark --bin babyshark
tshark (requerido para --live)tshark es la CLI oficial de Wireshark.
# macOS (Homebrew)
brew install wireshark
Debian/Ubuntu:
sudo apt-get update
sudo apt-get install -y tshark
Fedora:
sudo dnf install -y wireshark-cli
Arch:
sudo pacman -S wireshark-cli
Verifica:
tshark --version
tshark -D
Nota sobre permisos: la captura en vivo puede requerir permisos elevados (sudo, capacidades de dumpcap, o estar en el grupo wireshark). Si babyshark imprime un error de permisos, sigue la guía que muestra.
babyshark se actualizó en git pero mi comando sigue ejecutando el comportamiento antiguoSi instalaste con cargo install, necesitas reinstalar después de hacer pull:
cd babyshark/rust
cargo install --path . --force
Intenta ejecutar con sudo:
sudo babyshark --live en0
Si eso funciona, probablemente necesitas configurar los permisos de captura (dumpcap, grupo wireshark, etc.) en tu sistema operativo.
ips=0 para todoEsto sucede a menudo cuando las respuestas DNS no son visibles (DoH/DoT o en caché). Babyshark aún mostrará IPs observadas (desde flujos) usando pistas de TLS SNI / HTTP Host cuando estén disponibles.
babyshark --pcap ./capture.pcap
babyshark --list-ifaces
babyshark --live en0
babyshark --live en0 --dfilter "tcp.port==443"
babyshark --live en0 --write-pcap /tmp/live.pcapng
Estos son ejemplos solo texto de lo que verás en la TUI. Las IPs/dominios están anonimizados.
PCAP Viewer
babyshark Resumen flujos:114 paquetes:4227 tcp:on udp:on q=—
Resumen (D dominios, W extraño, F flujos)
En lenguaje sencillo
Paquetes: 4227 Flujos: 114 Mayor interlocutor: 10.0.0.6 (2711.9KB) Mayor interlocutor (pqs): 10.0.0.6 (4046 pqs)
En vivo: 88s pps~14.6 perdidos~0 | último: Capturando en 'Wi‑Fi: en0'
pps: ▁▁▂▂▃▄▅▆▆▇▆▅▄▃▂▂▁ (máx 1372/cubo)
Flujo superior (bytes): UDP 10.0.0.6:57315 ↔ 203.0.113.123:443 (1359.3KB)
Flujo superior (pqs): UDP 10.0.0.6:57315 ↔ 203.0.113.123:443 (1284 pqs)
¿Qué debería hacer clic?
• Dominios (vista humana) (presiona D)
• Cosas extrañas (solución de problemas) (presiona W)
• Flujos (en bruto) (presiona F)
• Línea de tiempo (Gantt + Dispersión) (presiona T)
↳ Detectado: Flujos de alta latencia (aproximado) (29 flujos)
Dominios (Enter muestra flujos, s ordenar (conn/bytes/fallo), c limpiar, Esc atrás)
1 wikipedia.com conn=9 bytes=21.0KB q=9 r=6 fail=0 ips=2
❯ 2 chat.openai.com conn=5 bytes=28.2KB q=5 r=3 fail=0 ips=2
Detalles del dominio
chat.openai.com
consultas=5 respuestas=3 fallos=0
IPs observadas (desde flujos):
10.0.0.6
198.51.100.42
Consejo: Enter aplica un filtro de subconjunto (prefiere IPs observadas; IPs DNS si están disponibles).
Cosas extrañas (Enter muestra flujos, c limpiar, Esc atrás)
❯ 1 Flujos de alta latencia (aproximado) flujos=42
2 Hosts charlatanes (conexiones ráfaga) flujos=28
3 Pistas de fiabilidad TCP (retransmisiones / fuera de orden) flujos=16
4 Resets TCP (RST) flujos=11
5 Versiones TLS obsoletas (≤ 1.1) flujos=3
6 Handshake no completado flujos=0
7 Fallos DNS (NXDOMAIN/SERVFAIL) flujos=0
Por qué es importante
Flujos de alta latencia (aproximado)
Si un flujo tarda mucho tiempo y tiene muchos paquetes, puede indicar latencia,
congestión o reintentos. Esta es una heurística aproximada y depende de marcas de tiempo correctas.
Línea de tiempo: Gantt (Tab cambiar, ↑/↓ mover, Enter paquetes, Esc atrás)
█ handshake █ TLS █ datos █ cierre █ UDP
09:31:02 09:31:10 09:31:18 09:31:26
google.com (HTTPS) ● ██████████████████████████████████
chat.openai.com (HT… ● ████████████████
wikipedia.org (HTTPS) ● ██████████████████████████
DNS 10.0.0.1:53 ● ██
Patrón: 3 conexiones abiertas simultáneamente — probablemente una carga de página
Patrón: 2 búsquedas DNS precedieron a 3 conexiones cifradas a hosts coincidentes
Detalles
TCP 10.0.0.6:57608 ↔ 198.51.100.42:443
Qué sucedió
1. Se conectó a google.com (handshake TCP tardó 12.5ms)
2. Negoció cifrado (TLS 1.3)
3. Transfirió 28.2KB en 89ms (40 paquetes)
4. Mayormente descargando (el servidor envió más datos)
5. Conexión cerrada limpiamente (FIN)
La línea de tiempo es la historia visual de tu captura. Muestra cuándo comenzó cada conexión, por qué fases pasó (handshake, TLS, transferencia de datos, cierre) y cómo se superponen.
Flujos [EN VIVO en0] (63.8 pps) (Enter paquetes, / filtrar, t/u alternar, b marcar, E exportar, o resumen) subset=dominio:chat.openai.com
● 1 UDP 510 10.0.0.6:59175 ↔ 203.0.113.123:443 DL
❯● 2 TCP 32 10.0.0.6:57608 ↔ 198.51.100.42:443 DL
Detalles
TCP 10.0.0.6:57608 ↔ 198.51.100.42:443
A→B: 14 pqs / 1386 bytes
B→A: 26 pqs / 26307 bytes
Dirección: descarga-pesada
RTT del handshake: 12.450ms
Tiempo de pensamiento del servidor: 3.200ms
Transferencia de datos: 89.100ms
Versión TLS: TLS 1.2
marcadores: 1
Nivel superior:
o resumenD dominiosW cosas extrañasF flujosT línea de tiempo (Gantt + Dispersión)h ayudag glosarioq salirEn las vistas:
Enter profundizar (dominios/extraño → flujos, flujos → paquetes)Esc atrásc limpiar filtro de subconjunto activo? explicar flujo seleccionadox descartar sugerencia de incorporación (Resumen)Vista de flujos:
↑/↓ o j/k mover/ filtrart / u alternar TCP / UDPb marcar flujoE exportar informeVista de línea de tiempo:
Tab / Shift-Tab cambiar Gantt / Dispersión↑/↓ o j/k moverRePág/AvPág páginaEnter profundizar en PaquetesVista de paquetes:
f seguir flujoVista de flujo:
/ buscarn / N siguiente / anterior coincidenciaTab / Shift-Tab ciclo de dirección del flujo↑/↓ desplazarCuando marcas/exportas, babyshark escribe junto al PCAP en un directorio oculto:
.babyshark/case.json — marcadores.babyshark/report.md — último informe (sobrescrito).babyshark/report-YYYYMMDD-HHMMSS.md — informes versionados--bpf para modo en vivoMIT © 2026 Vignesh Natarajan