
一个使用 Rust 和 GTK4 构建的实时网络连接监控工具,在现代图形界面中显示活动连接及实时 I/O 统计信息。
/proc 文件系统的 Linux 系统bpf-linker(用于 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
安装脚本将:
~/.local/bin/(本地)或 /usr/local/bin/(系统级)git clone <repository-url>
cd network-monitor
cargo run
或以 release 模式构建:
cargo build --release
./target/release/network-monitor
git clone <repository-url>
cd network-monitor
cargo build --bin nmt
./target/debug/nmt
或以 release 模式构建:
cargo build --release --bin nmt
./target/release/nmt
本地安装的移除:
./scripts/uninstall.sh
系统级移除(需要 sudo):
sudo ./scripts/uninstall.sh
卸载脚本将从相应位置移除二进制文件、桌面文件和图标,并更新所有相关缓存。
启动网络监视器应用程序:
cargo run
应用程序将打开一个 GTK4 窗口,显示:
/proc/[pid]/cmdline 的完整命令路径和参数行操作

启动终端界面:
cargo run --bin nmt
TUI 在交互式终端界面中提供相同的监控能力:
按键控制:
q - 退出应用程序r - 切换主机名解析R - 手动刷新连接a - 切换自动刷新(2 秒间隔)↑/↓ - 在连接之间导航←/→ - 水平滚动表格k / 右键单击 - 打开某一行的终止菜单(终止 / 强制终止 / 取消)1-8 - 按列排序(Process(ID)、Protocol、Source、Destination、Status、TX、RX、Path)鼠标:左键单击选择一行,右键单击选择该行并打开终止菜单。
功能特性:
常见地址会被简化以提高可读性:
0.0.0.0:* 或 *:* → ANY127.0.0.1:* 或 [::1]:* → LOCALHOST224.0.0.251:* → MDNS该应用使用内核级 kprobes(tcp_v4_connect、tcp_v6_connect、tcp_close、
inet_csk_accept)而不是轮询 /proc/net。这提供了:
bpf_get_current_pid_tgid() 捕获,无需 inode 扫描与默认的 /proc/net 轮询方式相比,eBPF 后端提供事件驱动的连接监控,开销更低且
具有实时事件。它可以捕获轮询可能遗漏的短生命周期连接。
前提条件:
rustup toolchain install nightly
cargo install bpf-linker
构建并运行:
cargo build
以普通用户身份运行(需要内核 5.8+):
为二进制文件授予所需的 Linux 能力(只需一次):
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/debug/network-monitor
./target/debug/network-monitor
或对于 TUI 版本:
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/debug/nmt
./target/debug/nmt
对于 release 构建,请相应调整路径:
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/release/network-monitor
如果 eBPF 不可用(缺少能力或内核不支持),应用将退出并显示设置提示信息。
bpf_get_current_pid_tgid() 进行进程识别/proc/[pid]/io 获取 I/O 统计信息thiserror 提供全面的错误类型和优雅恢复如果您觉得这个项目有帮助,请考虑捐赠以支持其开发。
88LyqYXn4LdCVDtPWKuton9hJwbo8ZduNEGuARHGdeSJ79BBYWGpMQR8VGWxGDKtTLLM6E9MJm8RvW9VMUgCcSXu19L9FSvbc1q6mh77hfv8x8pa0clzskw6ndysujmr78j6se025本项目为开源项目。详情请参阅 LICENSE 文件。