
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.

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.
/procbpf-linker (para compilación eBPF)sudo apt update
sudo apt install libgtk-4-dev libadwaita-1-dev
sudo dnf install gtk4-devel libadwaita-devel
git clone <repository-url>
cd network-monitor
./scripts/install.sh
sudo ./scripts/install.sh
El script de instalación:
~/.local/bin/ (local) o /usr/local/bin/ (todo el sistema)git clone <repository-url>
cd network-monitor
cargo run
O compila en modo release:
cargo build --release
./target/release/network-monitor
git clone <repository-url>
cd network-monitor
cargo build --bin nmt
./target/debug/nmt
O compila en modo release:
cargo build --release --bin nmt
./target/release/nmt
Eliminación de instalación local:
./scripts/uninstall.sh
Eliminación en todo el sistema (requiere sudo):
sudo ./scripts/uninstall.sh
El script de desinstalación eliminará el binario, el archivo .desktop y los iconos de las ubicaciones apropiadas y actualizará todas las cachés relevantes.
Lanza la aplicación de monitor de red:
cargo run
La aplicación abrirá una ventana GTK4 que muestra:
/proc/[pid]/cmdline
Lanza la interfaz de terminal:
cargo run --bin nmt
La TUI proporciona las mismas capacidades de monitoreo en una interfaz de terminal interactiva:
Controles clave:
q - Salir de la aplicaciónr - Actualizar conexiones manualmentea - Alternar actualización automática (intervalos de 2 segundos)↑/↓ - Navegar por las conexiones←/→ - Desplazar la tabla horizontalmente1-8 - Ordenar por columnas (Proceso(ID), Protocolo, Origen, Destino, Estado, TX, RX, Ruta)Características:
Las direcciones comunes se simplifican para facilitar la lectura:
0.0.0.0:* o *:* → ANY127.0.0.1:* o [::1]:* → LOCALHOST224.0.0.251:* → MDNSLa aplicación utiliza kprobes a nivel de kernel (tcp_v4_connect, tcp_v6_connect, tcp_close, inet_csk_accept) en lugar de sondear /proc/net. Esto proporciona:
bpf_get_current_pid_tgid(), sin escaneo de inodosEl backend eBPF proporciona monitoreo de conexiones basado en eventos con menor sobrecarga y eventos en tiempo real, en comparación con el enfoque de sondeo predeterminado de /proc/net. Puede capturar conexiones de corta duración que el sondeo podría pasar por alto.
Requisitos previos:
rustup toolchain install nightly
cargo install bpf-linker
Compilar y ejecutar:
cargo build
Ejecutar como usuario normal (se requiere kernel 5.8+):
Concede las capacidades de Linux requeridas al binario una vez:
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/debug/network-monitor
./target/debug/network-monitor
O para la versión TUI:
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/debug/nmt
./target/debug/nmt
Para compilaciones release, ajusta la ruta en consecuencia:
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 (faltan capacidades o kernel no compatible).
bpf_get_current_pid_tgid() en el punto de sonda/proc/[pid]/io para estadísticas de E/SthiserrorSi encuentras útil este proyecto, considera hacer una donación para apoyar su desarrollo.
88LyqYXn4LdCVDtPWKuton9hJwbo8ZduNEGuARHGdeSJ79BBYWGpMQR8VGWxGDKtTLLM6E9MJm8RvW9VMUgCcSXu19L9FSvbc1q6mh77hfv8x8pa0clzskw6ndysujmr78j6se025Este proyecto es de código abierto. Consulte el archivo LICENSE para más detalles.