
RustとGTK4で構築されたリアルタイムネットワーク接続監視ツール。モダンなグラフィカルインターフェースで、アクティブな接続とライブI/O統計を表示します。

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
またはリリースモードでビルド:
cargo build --release
./target/release/network-monitor
git clone <repository-url>
cd network-monitor
cargo build --bin nmt
./target/debug/nmt
またはリリースモードでビルド:
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 / 右クリック - 行のkillメニューを開く (Terminate / Force Kill / Cancel)1-8 - 列でソート (Process(ID)、Protocol、Source、Destination、Status、TX、RX、Path)マウス: 左クリックで行を選択、右クリックで選択してkillメニューを開きます。
機能:
一般的なアドレスは読みやすさのために簡略化されます:
0.0.0.0:* または *:* → ANY127.0.0.1:* または [::1]:* → LOCALHOST224.0.0.251:* → MDNSアプリは/proc/netのポーリングの代わりに、カーネルレベルのkprobes (tcp_v4_connect、tcp_v6_connect、tcp_close、inet_csk_accept) を使用します。これにより以下が提供されます:
bpf_get_current_pid_tgid()を介してキャプチャ、inodeスキャン不要eBPFバックエンドは、デフォルトの/proc/netポーリングアプローチと比較して、低いオーバーヘッドとリアルタイムイベントを備えたイベント駆動の接続監視を提供します。ポーリングでは見逃す可能性のある短命な接続をキャプチャできます。
前提条件:
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
リリースビルドの場合は、パスを適宜調整してください:
sudo setcap cap_bpf,cap_net_admin,cap_perfmon+ep target/release/network-monitor
eBPFが利用できない場合 (ケーパビリティの欠如またはサポートされていないカーネル)、アプリはセットアップメッセージとともに終了します。
bpf_get_current_pid_tgid()によるプロセス識別/proc/[pid]/ioの直接読み取りthiserrorを使用した優雅な回復を備えた包括的なエラー型このプロジェクトが役立つと思われる場合は、開発を支援するための寄付をご検討ください。
88LyqYXn4LdCVDtPWKuton9hJwbo8ZduNEGuARHGdeSJ79BBYWGpMQR8VGWxGDKtTLLM6E9MJm8RvW9VMUgCcSXu19L9FSvbc1q6mh77hfv8x8pa0clzskw6ndysujmr78j6se025このプロジェクトはオープンソースです。詳細はLICENSEファイルを参照してください。