RustNet is a cross-platform network monitoring tool built with Rust that provides real-time visibility into network connections via a terminal interface. It monitors active TCP, UDP, ICMP and ARP connections with detailed state tracking. Features include interface statistics showing bytes, packets, errors and drops, plus deep packet inspection for common protocols.
The tool can identify which processes are responsible for each connection using eBPF on Linux for better performance. It includes a terminal UI with vim-style filtering, multi-threaded packet processing, and runs on Linux, macOS, Windows and FreeBSD. Installation available through Homebrew, apt, dnf, AUR, crates.io or GitHub releases. Requires elevated privileges to capture packets.
Use Cases:
Built With Ratatui (https://ratatui.rs/built-with-ratatui/badge.svg) Build Status (https://github.com/domcyrus/rustnet/workflows/Rust/badge.svg) Crates.io (https://img.shields.io/crates/v/rustnet-monitor.svg) License (https://img.shields.io/badge/license-Apache--2.0-blue.svg) GitHub release (https://img.shields.io/github/v/release/domcyrus/rustnet.svg) Docker Image (https://img.shields.io/badge/docker-ghcr.io-blue?logo=docker)
A cross-platform network monitoring tool built with Rust. RustNet provides real-time visibility into network connections with detailed state information, connection lifecycle management, deep packet inspection, and a terminal user interface.
!RustNet Demo
ESTABLISHED, SYN_SENT, TIME_WAIT), QUIC states (QUIC_INITIAL, QUIC_HANDSHAKE, QUIC_CONNECTED), DNS states, SSH states, and activity-based UDP statesport:, src:, dst:, sni:, process:, state:)eBPF Enhanced Process Identification (Linux Default)
RustNet uses kernel eBPF programs by default on Linux for enhanced performance and lower overhead process identification. However, this comes with important limitations:
Process Name Limitations:
comm field, which is limited to 16 charactersReal-world Examples:
Fallback Behavior:
To disable eBPF and use procfs-only mode, build with:
cargo build --release --no-default-features
See ARCHITECTURE.md for technical information.
Interface Statistics Monitoring
RustNet provides real-time network interface statistics across all supported platforms:
i): Detailed table with comprehensive metrics for all interfacesSee USAGE.md for detailed documentation on interpreting interface statistics and platform-specific behavior.
Metrics Available:
Stats are collected every 2 seconds in a background thread with minimal performance impact.
Homebrew (macOS / Linux):
brew tap domcyrus/rustnet
brew install rustnet
Ubuntu (25.10+):
sudo add-apt-repository ppa:domcyrus/rustnet
sudo apt update && sudo apt install rustnet
Fedora (42+):
sudo dnf copr enable domcyrus/rustnet
sudo dnf install rustnet
Arch Linux (AUR):
yay -S rustnet
From crates.io:
cargo install rustnet-monitor
Other platforms:
Packet capture requires elevated privileges:
# Quick start (all platforms)
sudo rustnet
# Linux: Grant capabilities to run without sudo (recommended)
sudo setcap 'cap_net_raw,cap_bpf,cap_perfmon=eip' $(which rustnet)
rustnet
Common options:
rustnet -i eth0 # Specify network interface
rustnet --show-localhost # Show localhost connections
rustnet -r 500 # Set refresh interval (ms)
See INSTALL.md for detailed permission setup and USAGE.md for complete options.
| Key | Action |
|---|---|
q |
Quit (press twice to confirm) |
Ctrl+C |
Quit immediately |
Tab |
Switch between tabs |
i |
Toggle interface statistics view |
↑/k ↓/j |
Navigate up/down |
g G |
Jump to first/last connection |
Enter |
View connection details |
Esc |
Go back or clear filter |
c |
Copy remote address |
p |
Toggle service names/ports |
s S |
Cycle sort columns / toggle direction |
/ |
Enter filter mode |
h |
Toggle help |
See USAGE.md for detailed keyboard controls and navigation tips.
Fast, minimal macOS browser with sidebar-first vertical tab design, built with SwiftUI using modern macOS APIs for high performance and low memory usage, featuring extension support, profile isolation, split-view tabs, and command palette.
AI-powered knowledge management desktop app with RAG capabilities, Tiptap collaborative editor, and dual modes: Cloud sync via Supabase or complete offline privacy with local Ollama AI, SQLite storage, and LanceDB vector search.
Open-source MCP Host desktop application with universal LLM support for ChatGPT, Anthropic, Ollama, and OpenAI-compatible models, featuring OAPHub.ai cloud integration, cross-platform deployment via Tauri/Electron, 24+ language support, and OAuth-enabled MCP server integration.
Modern web-based SSH/RDP/VNC client built with Vue 3, TypeScript, Node.js, and Apache Guacamole, featuring multi-tab management, Monaco Editor, session suspension, 2FA security, IP filtering, audit logging, Docker management, and standalone desktop application for Windows and Linux.
Native macOS LLM server with MLX-optimized Apple Silicon inference, OpenAI/Ollama-compatible APIs, MCP server support for Cursor and Claude Desktop, remote provider connections, plugin ecosystem, menu bar chat, and Apple Foundation Models integration for macOS 26+.
AI API gateway system forked from New API with multi-key channel support, gift codes, native Hugging Face interface, regex filtering, token grouping, model restrictions, multiple OAuth providers, per-user rate limiting, cache billing, and comprehensive logging built with Go.