Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
network-monitor — Una herramienta de monitoreo de conexiones de red en tiempo real construida con Rust y GTK4, que muestra conexiones activas con estadísticas de E/S en vivo en una interfaz gráfica moderna. | Kitploit
Herramientas/GitHubGitHub/grigio/network-monitor
Utilidades de Propósito GeneralSniffing y Análisis de PaquetesMapeo de RedesRecopilación de InformaciónPrivacidad
GitHubgrigio/network-monitor

network-monitor

Una herramienta de monitoreo de conexiones de red en tiempo real construida con Rust y GTK4, que muestra conexiones activas con estadísticas de E/S en vivo en una interfaz gráfica moderna.

Ver Repositorio
284544hace 1 díaRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
# Network Monitor

![Demostración de Network Monitor en el escritorio GNOME en Linux](https://assets.kitploit.com/production/public/readmes/9883/ee8f839c4064b139e19ba818961f4ce859b5461a5eccf2d321c9a184533976b8.gif)

Una herramienta de monitoreo de conexiones de red en tiempo real construida con Rust y GTK4, que muestra las conexiones activas con estadísticas de E/S en vivo en una interfaz gráfica moderna.

[![rust](https://github.com/grigio/network-monitor/actions/workflows/rust.yml/badge.svg)](https://github.com/grigio/network-monitor/actions/workflows/rust.yml)
[![dependency status](https://deps.rs/repo/github/grigio/network-monitor/status.svg)](https://deps.rs/repo/github/grigio/network-monitor)


## Características

- **Monitoreo en tiempo real**: Monitorea continuamente las conexiones de red activas
- **Estadísticas de E/S**: Muestra las tasas de subida/bajada en vivo para cada conexión
- **Identificación de procesos**: Muestra el programa y el PID asociados a cada conexión
- **Acciones sobre procesos**: Haz clic derecho en una fila para copiar su valor/comando o para matar el proceso que
  posee la conexión (Terminar o Forzar Cierre, con confirmación)
- **Selección persistente**: La fila seleccionada mantiene su resaltado entre actualizaciones y se muestra en
  la franja de estado
- **Interfaz moderna GTK4**: Interfaz gráfica limpia y responsiva con estilo Libadwaita
- **Interfaz de terminal (TUI)**: Interfaz de terminal interactiva con las mismas capacidades de monitoreo
- **Resolución de direcciones**: Simplifica direcciones comunes (localhost, any, mDNS)
- **Filtrado de conexiones**: Filtra las conexiones localhost para una salida más limpia
- **Integración con GNOME**: Soporte adecuado de clase WM para anclar en el dock e integración con el escritorio
- **Instalación dual**: Soporta tanto la instalación local para el usuario como la instalación en todo el sistema
- **Manejo robusto de errores**: Recuperación integral de errores con guía de configuración clara
- **Rendimiento optimizado**: Caché de procesos y caché de diseño para mejorar la capacidad de respuesta

## Requisitos

- Rust 1.70+ (edición 2021)
- Bibliotecas de desarrollo de GTK4
- Bibliotecas de desarrollo de Libadwaita
- Sistema Linux con sistema de archivos `/proc`
- Linux 5.8+ (para capacidades granulares de eBPF)
- Rust nightly y `bpf-linker` (para la compilación de eBPF)

### Instalación en Ubuntu/Debian:
```bash
sudo apt update
sudo apt install libgtk-4-dev libadwaita-1-dev
```

### Instalación en Fedora:
```bash
sudo dnf install gtk4-devel libadwaita-devel
```

## Instalación

### Método 1: Instalar desde el código fuente con integración con el escritorio

1. Clona el repositorio:
```bash
git clone <repository-url>
cd network-monitor
```

2. Instala localmente (no se requiere sudo):
```bash
./scripts/install.sh
```

3. O instala en todo el sistema (requiere sudo):
```bash
sudo ./scripts/install.sh
```

El script de instalación hará lo siguiente:
- Compilará los binarios de GTK4 y TUI (debug para local, release para todo el sistema)
- Instalará los binarios en `~/.local/bin/` (local) o `/usr/local/bin/` (todo el sistema)
- Instalará el archivo desktop con la clase WM adecuada para anclar en el dock de GNOME
- Instalará los iconos en los directorios de iconos correspondientes
- Actualizará la caché de iconos y la base de datos de escritorio
- Asegurará que la aplicación se pueda anclar al dock/panel de GNOME

### Método 2: Compilar y ejecutar directamente

1. Clona el repositorio:
```bash
git clone <repository-url>
cd network-monitor
```

2. Compila y ejecuta:
```bash
cargo run
```

O compila en modo release:
```bash
cargo build --release
./target/release/network-monitor
```

### Método 3: Compilar y ejecutar la versión TUI

1. Clona el repositorio:
```bash
git clone <repository-url>
cd network-monitor
```

2. Compila y ejecuta la TUI:
```bash
cargo build --bin nmt
./target/debug/nmt
```

O compila en modo release:
```bash
cargo build --release --bin nmt
./target/release/nmt
```

## Desinstalación

### Eliminar la versión instalada

Eliminación de la instalación local:
```bash
./scripts/uninstall.sh
```

Eliminación en todo el sistema (requiere sudo):
```bash
sudo ./scripts/uninstall.sh
```

El script de desinstalación eliminará el binario, el archivo desktop y los iconos de las ubicaciones correspondientes y actualizará todas las cachés relevantes.

## Uso

### Interfaz gráfica GTK4

Inicia la aplicación de monitoreo de red:
```bash
cargo run
```

La aplicación abrirá una ventana GTK4 que muestra:
- **Process(ID)**: Nombre del proceso y PID con un mapeo preciso de socket a proceso
- **Protocol**: Protocolo TCP/UDP
- **Source**: Endpoint local (resuelto a un formato legible)
- **Destination**: Endpoint remoto (resuelto a un formato legible)
- **Status**: Estado de la conexión (ESTABLISHED, LISTEN, etc.)
- **TX**: Tasa de subida calculada a partir de las estadísticas de E/S del proceso
- **RX**: Tasa de bajada calculada a partir de las estadísticas de E/S del proceso
- **Path**: Ruta completa del comando y argumentos desde `/proc/[pid]/cmdline`

**Acciones de fila**

- **Clic izquierdo**: selecciona una fila (también se muestra en la franja inferior)
- **Clic derecho**: abre el menú contextual con *Copy Value*, *Copy Command* y
  *Kill "process" (PID)*, que pregunta si se desea Terminar (SIGTERM) o Forzar Cierre (SIGKILL)
- **Delete**: mata la fila actualmente seleccionada (mismo diálogo de confirmación)
- **Ctrl+C**: copia el contenido de la celda
- **Botón Refresh** en la barra de encabezado: actualiza inmediatamente (la lista también se actualiza cada 3s)

### Interfaz de terminal (TUI)

![nmt tui de network-monitor](https://assets.kitploit.com/production/public/readmes/9883/47e8eb45b8c8f16826d39677c6c81c38a0fd1a48bf59d28a070994f93e437a2c.png)

Inicia la interfaz de terminal:
```bash
cargo run --bin nmt
```

La TUI proporciona las mismas capacidades de monitoreo en una interfaz de terminal interactiva:

**Controles de teclado:**
- `q` - Salir de la aplicación
- `r` - Alternar la resolución de nombres de host
- `R` - Actualizar las conexiones manualmente
- `a` - Alternar la actualización automática (intervalos de 2 segundos)
- `↑/↓` - Navegar por las conexiones
- `←/→` - Desplazar la tabla horizontalmente
- `k` / **clic derecho** - Abrir el menú de matar para una fila (Terminar / Forzar Cierre / Cancelar)
- `1-8` - Ordenar por columnas (Process(ID), Protocol, Source, Destination, Status, TX, RX, Path)

Ratón: el clic izquierdo selecciona una fila, el clic derecho la selecciona y abre el menú de matar.

**Características:**
- Monitoreo de conexiones en tiempo real con actualización automática
- Columnas ordenables con indicadores visuales
- Desplazamiento horizontal para tablas anchas
- Dimensionamiento inteligente de columnas - la última columna ocupa todo el ancho restante
- Protocolos codificados por colores (TCP/TCP6 en verde, UDP/UDP6 en amarillo)
- Resaltado de la conexión activa
- Información de proceso y PID
- Visualización de la tasa de E/S en vivo
- Mismo orden de columnas que la versión GTK4 para mantener la consistencia

### Resolución de direcciones

Las direcciones comunes se simplifican para facilitar la lectura:
- `0.0.0.0:*` o `*:*` → `ANY`
- `127.0.0.1:*` o `[::1]:*` → `LOCALHOST`
- `224.0.0.251:*` → `MDNS`

## Cómo funciona

### Backend eBPF (basado en eventos)

La aplicación utiliza kprobes a nivel del kernel (`tcp_v4_connect`, `tcp_v6_connect`, `tcp_close`,
`inet_csk_accept`) en lugar de hacer polling sobre `/proc/net`. Esto proporciona:

- **Basado en eventos**: Entrega de eventos en menos de un milisegundo, sin sobrecarga de polling (~1-3% de CPU)
- **PID directo**: Capturado en el punto de la sonda mediante `bpf_get_current_pid_tgid()`, sin escaneo de inodos
- **Conexiones de corta duración**: Nunca se pierden entre intervalos de polling

### Modo eBPF

El backend eBPF proporciona un monitoreo de conexiones **basado en eventos** con menor sobrecarga y eventos en
tiempo real, en comparación con el enfoque predeterminado de polling sobre `/proc/net`. Puede capturar conexiones de corta duración
que el polling podría pasar por alto.

**Requisitos previos:**
```bash
rustup toolchain install nightly
cargo install bpf-linker
```

**Compilar y ejecutar:**
```bash
cargo build
```

**Ejecutar como usuario normal** (se requiere kernel 5.8+):

Concede las capacidades de Linux necesarias al binario una vez:
```bash
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/debug/network-monitor
./target/debug/network-monitor
```

O para la versión TUI:
```bash
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/debug/nmt
./target/debug/nmt
```

Para compilaciones release, ajusta la ruta en consecuencia:
```bash
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/release/network-monitor
```

La aplicación saldrá con un mensaje de configuración si eBPF no está disponible (capacidades faltantes o
kernel no compatible).

## Arquitectura
- **GTK4**: Framework GUI moderno y multiplataforma
- **Libadwaita**: Componentes de interfaz con estilo GNOME
- **Tokio**: Runtime asíncrono para operaciones concurrentes
- **Aya + eBPF**: Trazado de conexiones a nivel del kernel con kprobes para eventos en tiempo real
- **PID directo**: Identificación de procesos mediante `bpf_get_current_pid_tgid()` en el punto de la sonda
- **Llamadas al sistema**: Lectura directa de `/proc/[pid]/io` para estadísticas de E/S
- **Manejo de errores**: Tipos de error integrales con recuperación elegante usando `thiserror`
- **Caché de rendimiento**: Caché de diseño de la interfaz para un rendimiento óptimo

## Paquetes de Linux

[![Packaging status](https://repology.org/badge/vertical-allrepos/network-monitor.svg)](https://repology.org/project/network-monitor/versions)


## Donaciones

Si encuentras útil este proyecto, considera hacer una donación para apoyar su desarrollo.

- **Monero**: `88LyqYXn4LdCVDtPWKuton9hJwbo8ZduNEGuARHGdeSJ79BBYWGpMQR8VGWxGDKtTLLM6E9MJm8RvW9VMUgCcSXu19L9FSv`
- **Bitcoin**: `bc1q6mh77hfv8x8pa0clzskw6ndysujmr78j6se025`

## Licencia

Este proyecto es de código abierto. Consulta el archivo LICENSE para más detalles.
Descargar herramienta