
ターミナル向けの、ディープパケットインスペクションを備えたプロセス単位のネットワーク監視。クロスプラットフォーム、サンドボックス化。
ターミナル向けのプロセス単位ネットワーク監視:ライブなTCP、UDP、QUIC接続とディープパケットインスペクションを備え、デフォルトでサンドボックス化されています。
English | 简体中文
マシンが行うすべての接続、その接続を所有するプロセス、そして使用中のプロトコルをリアルタイムに可視化します。tcpdump、X11フォワーディング、rootパイピングは不要です。
netstat / ss はライブ状態を表示できません。--pcapng-export は、プロセス、PID、方向、DPI/SNI、GeoIPをパケットごとのコメントとして埋め込んだ、Wireshark対応のキャプチャを書き出します。Wiresharkで開くだけで、すべてのパケットに所有プロセス名が付いており、後処理は不要です。オフラインでの相関分析用にJSONLサイドカーを伴う従来の --pcap-export も利用できます。t キーで過去(クローズ済み)の接続をフォレンジック用に表示し続けることができます。port:、src:、dst:、sni:、process:、、 に加え、 による正規表現に対応。RustNetは、シンプルな接続ツール(netstat、ss)とパケットアナライザー(Wireshark、tcpdump)の間のギャップを埋めます:
RustNetはパケットキャプチャツールを補完します。何が接続を行っているのか を確認するにはRustNetを使用してください。Wiresharkで直接検査する場合は、--pcapng-export がPID/プロセスコンテキスト付きのライブなベストエフォートパケットコメントを書き出します。事後の相関分析には、--pcap-export とJSONLサイドカー、およびオプションの scripts/pcap_enrich.py を使用してください。詳細については PCAPエクスポート と 類似ツールとの比較 を参照してください。
ratatui、libpcap、eBPF(libbpf-rs)、DashMap、crossbeam、ring、MaxMind GeoLite2、Landlock上に構築されています。依存関係の完全な内訳については ARCHITECTURE.md を参照してください。
RustNetはLinux上でデフォルトでカーネルeBPFプログラムを使用し、パフォーマンスを向上させ、オーバーヘッドの低いプロセス識別を実現します。ただし、これには重要な制限があります:
プロセス名の制限:
comm フィールドを使用するため、16文字に制限されます実際の例:
フォールバック動作:
eBPFを無効にしてprocfsのみのモードを使用するには、次のようにビルドします:
cargo build --release --no-default-features
技術情報については ARCHITECTURE.md を参照してください。
RustNetは、サポートされているすべてのプラットフォームでリアルタイムのネットワークインターフェース統計を提供します:
3 キー):すべてのインターフェースの包括的なメトリクスを備えた詳細テーブルを表示しますインターフェース統計の解釈とプラットフォーム固有の動作に関する詳細なドキュメントについては、USAGE.md を参照してください。
利用可能なメトリクス:
統計はバックグラウンドスレッドで2秒ごとに収集され、パフォーマンスへの影響は最小限です。
Homebrew (macOS / Linux):
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
openSUSE Tumbleweed:
sudo zypper addrepo https://download.opensuse.org/repositories/home:/domcyrus:/rustnet/openSUSE_Tumbleweed/home:domcyrus:rustnet.repo
sudo zypper refresh
sudo zypper install rustnet
Arch Linux:
sudo pacman -S rustnet
Nix / NixOS:
nix-shell -p rustnet
# Then inside the shell: sudo rustnet
crates.ioから:
cargo install rustnet-monitor
Windows (Chocolatey):
# Run in Administrator PowerShell
# Requires Npcap (https://npcap.com) installed with "WinPcap API-compatible Mode" enabled
choco install rustnet
その他のプラットフォーム:
パケットキャプチャには昇格した権限が必要です:
# 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
一般的なオプション:
rustnet -i eth0 # Specify network interface
rustnet --show-localhost # Show localhost connections
rustnet --no-resolve-dns # Disable reverse DNS lookups (enabled by default)
rustnet -r 500 # Set refresh interval (ms)
rustnet --theme classic # Original full-color palette (default: muted)
rustnet --pcapng-export capture.pcapng # Annotated PCAPNG for Wireshark
詳細な権限設定については INSTALL.md、完全なオプションについては USAGE.md を参照してください。
ケイパビリティを設定してもTUIに
eBPF unavailableと表示される場合は、 トラブルシューティングセクションの ケイパビリティ設定後もeBPFが利用できない場合 を参照してください。
詳細なキーボード操作とナビゲーションのヒントについては USAGE.md を参照してください。
クイックフィルタリング例:
/google # Search for "google" anywhere
/port:443 # Filter by port
/process:firefox # Filter by process
/state:established # Filter by connection state
/dport:443 sni:github.com # Combine filters
ソート:
s キーを押すと、ソート可能な列(プロセス、アドレス、サービス、アプリケーション、状態、帯域幅)を順に切り替えますS(Shift+s)キーを押すと、ソート方向を反転しますs を押します(上り+下りの合計速度でソート)完全なフィルター構文とソートガイドについては USAGE.md を参照してください。
キーワードフィルター:
port:44 - "44" を含むポート(443、8080、4433)sport:80 - "80" を含む送信元ポートdport:443 - "443" を含む宛先ポートsrc:192.168 - "192.168" を含む送信元IPdst:github.com - "github.com" を含む宛先process:ssh - "ssh" を含むプロセス名sni:api - "api" を含むSNIホスト名app:openssh - OpenSSHを使用するSSH接続state:established - プロトコル状態でフィルタリングproto:tcp - プロトコルタイプでフィルタリング状態フィルタリング:
state:syn_recv - ハーフオープン接続(SYNフラッド検出)state:established - 確立済みの接続のみRustNetは、接続を削除する前にスマートなタイムアウトと視覚的な警告を使用します:
視覚的な鮮度インジケーター:
プロトコルを考慮したタイムアウト:
Initial/Handshaking:60秒例:HTTP接続は7.5分で黄色、9分で赤になり、10分で削除されます。
完全なタイムアウトの詳細については USAGE.md を参照してください。
コントリビューションを歓迎します! 貢献方法のガイドラインについては CONTRIBUTING.md を参照してください。
このプロジェクトに貢献した人々のリストについては CONTRIBUTORS.md を参照してください。
このプロジェクトはApache License 2.0の下でライセンスされています。詳細は LICENSE ファイルを参照してください。
tshark/wireshark/tcpdump、sniffnet、netstat、ss、iftop、bandwhich などのツールに触発されています一部のセクションは、整理を改善するために専用ファイルに移動されました:
state:proto:/(?i)pattern/kubernetes 機能):接続をポッド、ネームスペース、コンテナにマッピングし、詳細ペイン、JSON/PCAPNGエクスポート、および pod:、ns:、container: フィルターに表示します。公式Dockerイメージで有効化されています。クラスター上では、kubectl-rustnet プラグインを使用して、一時的なデバッグポッドとして実行できます。USAGE.md を参照してください。| 概要 ライブ統計とスパークラインを備えた接続テーブル ![]() | 詳細 接続ごとのSNI、暗号スイート、GeoIP、DPI ![]() |
| グラフ トラフィックチャート、アプリ分布、上位プロセス ![]() | インターフェース エラーとドロップを含むインターフェースごとのRX/TX履歴 ![]() |
| キー | 操作 |
|---|
q | 終了(確認のため2回押す) |
Ctrl+C | すぐに終了 |
x | すべての接続をクリア(確認のため2回押す) |
Tab or ] | 次のタブ |
Shift+Tab or [ | 前のタブ |
1–5 | 概要 / 詳細 / インターフェース / グラフ / ヘルプにジャンプ |
↑/k ↓/j | 上下に移動 |
g G | 最初/最後の接続にジャンプ |
Enter | 接続の詳細を表示 |
Esc | 戻る、またはフィルターをクリア |
c | リモートアドレスをコピー |
p | サービス名/ポートの表示を切り替え |
d | ホスト名/IPの表示を切り替え |
s S | ソート列を順に切り替え / 方向を反転 |
a | プロセスのグループ化を切り替え |
Space | プロセスグループを展開/折りたたみ |
←/→ or h/l | グループを折りたたみ/展開 |
PageUp/PageDown or Ctrl+B/F | ページ移動 |
t | 履歴(クローズ済み)接続の表示を切り替え |
i | システム情報サイドバーの表示を切り替え |
r | ビューをリセット(グループ化、ソート、フィルター) |
/ | フィルターモードに入る |
h | ヘルプの表示を切り替え |
state:quic_connected - アクティブなQUIC接続state:dns_query - DNSクエリ接続組み合わせ例:
sport:80 process:nginx - ポート80からのNginx接続dport:443 sni:google.com - GoogleへのHTTPSprocess:firefox state:quic_connected - FirefoxのQUIC接続dport:22 app:openssh state:established - 確立済みのOpenSSH接続