Rustnet Download

Cross-platform network monitoring tool built with Rust for terminal. Tracks TCP, UDP, ICMP and ARP connections with process identification, packet inspection and vim-style filtering. Runs on Linux, macOS, Windows and FreeBSD.

⭐ 1,421 stars on GitHub
Latest Release: v0.17.0

About Software

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:

  • Monitor active network connections in real-time from your terminal
  • Track TCP, UDP, ICMP and ARP connections with detailed state information
  • Inspect network traffic to detect HTTP, HTTPS, DNS, SSH and QUIC protocols
  • Identify which processes are making network connections on your system
  • Filter and search connections using vim-style keyboard shortcuts

Downloads

v0.17.0 December 07, 2025
Rustnet_LinuxDEB_amd64.debdeb
Rustnet_LinuxDEB_arm64.debdeb
Rustnet_LinuxDEB_armhf.debdeb
Rustnet_macOS_AppleSilicon.dmgdmg
Rustnet_macOS_Intel.dmgdmg
Rustnet_Windows_32-bit.msimsi
Rustnet_Windows_64-bit.msimsi
v0.16.1 November 22, 2025
Rustnet_LinuxDEB_amd64.debdeb
Rustnet_LinuxDEB_arm64.debdeb
Rustnet_LinuxDEB_armhf.debdeb
Rustnet_macOS_AppleSilicon.dmgdmg
Rustnet_macOS_Intel.dmgdmg
Rustnet_Windows_32-bit.msimsi
Rustnet_Windows_64-bit.msimsi
v0.15.0 October 25, 2025
Rustnet_LinuxDEB_amd64.debdeb
Rustnet_LinuxDEB_arm64.debdeb
Rustnet_LinuxDEB_armhf.debdeb
Rustnet_macOS_AppleSilicon.dmgdmg
Rustnet_macOS_Intel.dmgdmg
Rustnet_Windows_32-bit.msimsi
Rustnet_Windows_64-bit.msimsi
v0.14.0 October 12, 2025
Rustnet_LinuxDEB_amd64.debdeb
Rustnet_LinuxDEB_arm64.debdeb
Rustnet_LinuxDEB_armhf.debdeb
Rustnet_macOS_AppleSilicon.dmgdmg
Rustnet_macOS_Intel.dmgdmg
Rustnet_Windows_32-bit.msimsi
Rustnet_Windows_64-bit.msimsi
v0.13.0 October 04, 2025
Rustnet_LinuxDEB_amd64.debdeb
Rustnet_LinuxDEB_arm64.debdeb
Rustnet_LinuxDEB_armhf.debdeb
Rustnet_macOS_AppleSilicon.dmgdmg
Rustnet_macOS_Intel.dmgdmg
Rustnet_Windows_32-bit.msimsi
Rustnet_Windows_64-bit.msimsi
v0.12.0 October 01, 2025
Rustnet_LinuxDEB_amd64.debdeb
Rustnet_LinuxDEB_arm64.debdeb
Rustnet_LinuxDEB_armhf.debdeb
Rustnet_macOS_AppleSilicon.dmgdmg
Rustnet_macOS_Intel.dmgdmg
Rustnet_Windows_32-bit.msimsi
Rustnet_Windows_64-bit.msimsi
v0.11.0 September 30, 2025
Rustnet_LinuxDEB_amd64.debdeb
Rustnet_LinuxDEB_arm64.debdeb
Rustnet_LinuxDEB_armhf.debdeb
Rustnet_macOS_AppleSilicon.dmgdmg
Rustnet_macOS_Intel.dmgdmg
Rustnet_Windows_32-bit.msimsi
Rustnet_Windows_64-bit.msimsi

Package Info

Last Updated
Dec 07, 2025
Latest Version
v0.17.0
License
Apache-2.0
Total Versions
7

README

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)

RustNet

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

Features

  • Real-time Network Monitoring: Monitor active TCP, UDP, ICMP, and ARP connections with detailed state information
  • Connection States: Track TCP states (ESTABLISHED, SYN_SENT, TIME_WAIT), QUIC states (QUIC_INITIAL, QUIC_HANDSHAKE, QUIC_CONNECTED), DNS states, SSH states, and activity-based UDP states
  • Interface Statistics: Real-time monitoring of network interface metrics including bytes/packets transferred, errors, drops, and collisions
  • Deep Packet Inspection (DPI): Detect application protocols including HTTP, HTTPS/TLS with SNI, DNS, SSH with version detection, and QUIC with CONNECTION_CLOSE frame detection
  • TCP Network Analytics: Real-time detection of TCP retransmissions, out-of-order packets, and fast retransmits with per-connection and aggregate statistics
  • Smart Connection Lifecycle: Protocol-aware timeouts with visual staleness indicators (white → yellow → red) before cleanup
  • Process Identification: Associate network connections with running processes
  • Service Name Resolution: Identify well-known services using port numbers
  • Cross-platform Support: Works on Linux, macOS, Windows, and FreeBSD
  • Advanced Filtering: Real-time vim/fzf-style filtering with keyword support (port:, src:, dst:, sni:, process:, state:)
  • Terminal User Interface: Beautiful TUI built with ratatui with adjustable column widths
  • Multi-threaded Processing: Concurrent packet processing for high performance
  • Optional Logging: Detailed logging with configurable log levels (disabled by default)
  • Security Sandboxing: Landlock-based filesystem/network restrictions on Linux 5.13+ (see SECURITY.md)

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:

  • eBPF uses the kernel's comm field, which is limited to 16 characters
  • Shows the task/thread command name, not the full executable path
  • Multi-threaded applications often show thread names instead of the main process name

Real-world Examples:

  • Firefox: May appear as "Socket Thread", "Web Content", "Isolated Web Co", or "MainThread"
  • Chrome: May appear as "ThreadPoolForeg", "Chrome_IOThread", "BrokerProcess", or "SandboxHelper"
  • Electron apps: Often show as "electron", "node", or internal thread names
  • System processes: Show truncated names like "systemd-resolve" → "systemd-resolve"

Fallback Behavior:

  • When eBPF fails to load or lacks sufficient permissions, RustNet automatically falls back to standard procfs-based process identification
  • Standard mode provides full process names but with higher CPU overhead
  • eBPF is enabled by default; no special build flags needed

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:

  • Overview Tab: Shows active interfaces with current rates, errors, and drops
  • Interfaces Tab (press i): Detailed table with comprehensive metrics for all interfaces
  • Cross-Platform: Linux (sysfs), macOS/FreeBSD (getifaddrs), Windows (GetIfTable2 API)
  • Smart Filtering: Windows automatically excludes virtual/filter adapters

See USAGE.md for detailed documentation on interpreting interface statistics and platform-specific behavior.

Metrics Available:

  • Total bytes and packets (RX/TX)
  • Error counters (receive and transmit)
  • Packet drops (queue overflows)
  • Collisions (legacy, rarely used on modern networks)

Stats are collected every 2 seconds in a background thread with minimal performance impact.

Quick Start

Installation

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:

  • Windows/FreeBSD: Download installers from GitHub Releases (https://github.com/domcyrus/rustnet/releases)
  • Docker, source builds, other Linux distros: See INSTALL.md for detailed instructions

Running RustNet

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.

Keyboard Controls

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.

Related Software

Nook

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.

⭐ 1,677

Klee

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.

⭐ 1,676app, klee, llamaindex

Dive

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.

⭐ 1,652ai-agents, llm-interface, mcp-client

Nexus Terminal

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.

⭐ 1,643express, nodejs, typescript

Osaurus

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+.

⭐ 1,622llm, swift, apple-foundation-models

Veloera

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.

⭐ 1,548