
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
アンインストールスクリプトは、バイナリ、デスクトップファイル、アイコンを適切な場所から削除し、関連するすべてのキャッシュを更新します。
Network Monitorアプリケーションを起動:
cargo run
アプリケーションはGTK4ウィンドウを開き、以下を表示します:
/proc/[pid]/cmdlineからの完全なコマンドパスと引数
ターミナルインターフェースを起動:
cargo run --bin nmt
TUIは、対話型ターミナルインターフェースで同じ監視機能を提供します:
キー操作:
q - アプリケーションを終了r - 接続を手動で更新a - 自動更新を切り替え(2秒間隔)↑/↓ - 接続間を移動←/→ - テーブルを水平スクロール1-8 - 列で並べ替え(プロセス(ID)、プロトコル、送信元、宛先、ステータス、TX、RX、パス)機能:
一般的なアドレスは読みやすさのために簡略化されます:
0.0.0.0:* または *:* → ANY127.0.0.1:* または [::1]:* → LOCALHOST224.0.0.251:* → MDNSこのアプリは、/proc/netのポーリングではなく、カーネルレベルのkprobe(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ファイルを参照してください。