Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
rustnet — ターミナル向けの、ディープパケットインスペクションを備えたプロセス単位のネットワーク監視。クロスプラットフォーム、サンドボックス化。 | Kitploit
ツール/GitHubGitHub/domcyrus/rustnet
パケットスニッフィングと分析コンテナセキュリティフォレンジック情報収集クラウドセキュリティ脅威インテリジェンスDNS分析ログ分析
GitHubdomcyrus/rustnet

rustnet

ターミナル向けの、ディープパケットインスペクションを備えたプロセス単位のネットワーク監視。クロスプラットフォーム、サンドボックス化。

リポジトリを見る
4.8k2234時間3分前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

RustNet

ターミナル向けのプロセス単位ネットワーク監視:ライブなTCP、UDP、QUIC接続とディープパケットインスペクションを備え、デフォルトでサンドボックス化されています。

Built With Ratatui Build Status Crates.io GitHub Stars License GitHub release Docker Image

English | 简体中文

RustNet デモ

マシンが行うすべての接続、その接続を所有するプロセス、そして使用中のプロトコルをリアルタイムに可視化します。tcpdump、X11フォワーディング、rootパイピングは不要です。

機能

  • プロセス単位の帰属:すべてのTCP、UDP、QUIC接続を、LinuxではeBPF、macOSではPKTAP、WindowsとFreeBSDではネイティブAPI経由で、所有するプロセスにマッピングします。Wiresharkやtcpdumpではこれはできません。netstat / ss はライブ状態を表示できません。
  • ディープパケットインスペクション:外部のディセクタなしで、HTTP、SNI付きHTTPS/TLS、DNS、SSH、FTP、QUIC、MQTT、BitTorrent、STUN、NTP、mDNS、LLMNR、DHCP、SNMP、SSDP、NetBIOSを識別します。
  • 注釈付きPCAPNGエクスポート:--pcapng-export は、プロセス、PID、方向、DPI/SNI、GeoIPをパケットごとのコメントとして埋め込んだ、Wireshark対応のキャプチャを書き出します。Wiresharkで開くだけで、すべてのパケットに所有プロセス名が付いており、後処理は不要です。オフラインでの相関分析用にJSONLサイドカーを伴う従来の --pcap-export も利用できます。
  • セキュリティサンドボックス:Landlock(Linux 5.13+)、Seatbelt(macOS)、トークン権限の削除+ジョブオブジェクトによる子プロセスブロック(Windows)。libpcapの初期化直後に権限を放棄します。SECURITY.md を参照してください。
  • TCPネットワーク分析:リアルタイムの再送信、順序外パケット、高速再送信の検出を、接続ごとおよび集計で行います。
  • スマートな接続ライフサイクル:プロトコルを考慮したタイムアウトと、白 → 黄 → 赤の鮮度インジケーターを備えます。t キーで過去(クローズ済み)の接続をフォレンジック用に表示し続けることができます。
  • Vim/fzf風フィルタリング:port:、src:、dst:、sni:、process:、、 に加え、 による正規表現に対応。

なぜRustNetなのか?

RustNetは、シンプルな接続ツール(netstat、ss)とパケットアナライザー(Wireshark、tcpdump)の間のギャップを埋めます:

  • プロセス帰属:各接続を所有するアプリケーションを確認できます。Wiresharkはパケットしか見えずソケットが見えないため、これを提供できません。
  • 接続中心のビュー:接続ごとの状態、帯域幅、プロトコルをリアルタイムに追跡します。
  • SSHフレンドリー:TUIがSSH経由で動作するため、X11をフォワーディングしたりトラフィックをキャプチャしたりせずに、リモートサーバーで何が起きているかをすぐに確認できます。

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 を参照してください。

eBPF拡張プロセス識別(Linuxデフォルト)

RustNetはLinux上でデフォルトでカーネルeBPFプログラムを使用し、パフォーマンスを向上させ、オーバーヘッドの低いプロセス識別を実現します。ただし、これには重要な制限があります:

プロセス名の制限:

  • eBPFはカーネルの comm フィールドを使用するため、16文字に制限されます
  • 完全な実行可能ファイルパスではなく、タスク/スレッドのコマンド名を表示します
  • マルチスレッドアプリケーションでは、メインプロセス名の代わりにスレッド名が表示されることがよくあります

実際の例:

  • Firefox:"Socket Thread"、"Web Content"、"Isolated Web Co"、"MainThread" として表示されることがあります
  • Chrome:"ThreadPoolForeg"、"Chrome_IOThread"、"BrokerProcess"、"SandboxHelper" として表示されることがあります
  • Electronアプリ:"electron"、"node"、または内部スレッド名として表示されることがよくあります
  • システムプロセス:"systemd-resolve" → "systemd-resolve" のように切り詰められた名前が表示されます

フォールバック動作:

  • eBPFのロードに失敗した場合、または十分な権限がない場合、RustNetは自動的に標準のprocfsベースのプロセス識別にフォールバックします
  • 標準モードは完全なプロセス名を提供しますが、CPUオーバーヘッドが高くなります
  • eBPFはデフォルトで有効です。特別なビルドフラグは必要ありません

eBPFを無効にしてprocfsのみのモードを使用するには、次のようにビルドします:

root@kitploit:~
cargo build --release --no-default-features

技術情報については ARCHITECTURE.md を参照してください。

インターフェース統計モニタリング

RustNetは、サポートされているすべてのプラットフォームでリアルタイムのネットワークインターフェース統計を提供します:

  • 概要タブ:現在のレート、エラー、ドロップを含むアクティブなインターフェースを表示します
  • インターフェースタブ(3 キー):すべてのインターフェースの包括的なメトリクスを備えた詳細テーブルを表示します
  • クロスプラットフォーム:Linux(sysfs)、macOS/FreeBSD(getifaddrs)、Windows(GetIfTable2 API)
  • スマートフィルタリング:Windowsは仮想/フィルターアダプターを自動的に除外します

インターフェース統計の解釈とプラットフォーム固有の動作に関する詳細なドキュメントについては、USAGE.md を参照してください。

利用可能なメトリクス:

  • 合計バイト数とパケット数(RX/TX)
  • エラーカウンター(受信と送信)
  • パケットドロップ(キューオーバーフロー)
  • コリジョン(レガシー。現代のネットワークではほとんど使用されません)

統計はバックグラウンドスレッドで2秒ごとに収集され、パフォーマンスへの影響は最小限です。

スクリーンショット

クイックスタート

インストール

Homebrew (macOS / Linux):

root@kitploit:~
brew install rustnet

Ubuntu (25.10+):

root@kitploit:~
sudo add-apt-repository ppa:domcyrus/rustnet
sudo apt update && sudo apt install rustnet

Fedora (42+):

root@kitploit:~
sudo dnf copr enable domcyrus/rustnet
sudo dnf install rustnet

openSUSE Tumbleweed:

root@kitploit:~
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:

root@kitploit:~
sudo pacman -S rustnet

Nix / NixOS:

root@kitploit:~
nix-shell -p rustnet
# Then inside the shell: sudo rustnet

crates.ioから:

root@kitploit:~
cargo install rustnet-monitor

Windows (Chocolatey):

root@kitploit:~
# Run in Administrator PowerShell
# Requires Npcap (https://npcap.com) installed with "WinPcap API-compatible Mode" enabled
choco install rustnet

その他のプラットフォーム:

  • FreeBSD:rustnet-bsd releases からダウンロードしてください
  • Docker、ソースからのビルド、その他のLinuxディストリビューション:詳細な手順については INSTALL.md を参照してください

RustNetの実行

パケットキャプチャには昇格した権限が必要です:

root@kitploit:~
# 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

一般的なオプション:

root@kitploit:~
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 を参照してください。

フィルタリングとソート

クイックフィルタリング例:

root@kitploit:~
/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)キーを押すと、ソート方向を反転します
  • 帯域幅のヘビーユーザーを見つける:"Bandwidth Total ↓" が表示されるまで s を押します(上り+下りの合計速度でソート)

完全なフィルター構文とソートガイドについては USAGE.md を参照してください。

高度なフィルタリング例

キーワードフィルター:

  • port:44 - "44" を含むポート(443、8080、4433)
  • sport:80 - "80" を含む送信元ポート
  • dport:443 - "443" を含む宛先ポート
  • src:192.168 - "192.168" を含む送信元IP
  • dst: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は、接続を削除する前にスマートなタイムアウトと視覚的な警告を使用します:

視覚的な鮮度インジケーター:

  • 白:アクティブ(タイムアウトの75%未満)
  • 黄:失効間近(タイムアウトの75〜90%)
  • 赤:重大(タイムアウトの90%超)

プロトコルを考慮したタイムアウト:

  • HTTP/HTTPS:10分(keep-alive対応)
  • SSH:30分(長時間のセッション)
  • TCPアクティブ:10分、アイドル:5分
  • QUIC接続済み:3分(または、存在する場合はピアのトランスポートパラメータのアイドルタイムアウト)。Initial/Handshaking:60秒
  • DNS:30秒
  • TCP CLOSED:5秒

例:HTTP接続は7.5分で黄色、9分で赤になり、10分で削除されます。

完全なタイムアウトの詳細については USAGE.md を参照してください。

ドキュメント

  • INSTALL.md - 全プラットフォーム向けの詳細なインストール手順、権限設定、トラブルシューティング
  • USAGE.md - コマンドラインオプション、フィルタリング、ソート、ロギングを含む完全な使用ガイド
  • SECURITY.md - Landlockサンドボックスと権限管理を含むセキュリティ機能
  • ARCHITECTURE.md - 技術アーキテクチャ、プラットフォーム実装、パフォーマンスの詳細
  • PROFILING.md - flamegraphのセットアップと最適化のヒントを備えたパフォーマンスプロファイリングガイド
  • ROADMAP.md - 計画中の機能と今後の改善
  • RELEASE.md - メンテナー向けのリリースプロセス

コントリビューション

コントリビューションを歓迎します! 貢献方法のガイドラインについては CONTRIBUTING.md を参照してください。

このプロジェクトに貢献した人々のリストについては CONTRIBUTORS.md を参照してください。

ライセンス

このプロジェクトはApache License 2.0の下でライセンスされています。詳細は LICENSE ファイルを参照してください。

謝辞

  • ターミナルUIには ratatui を使用
  • パケットキャプチャは libpcap を採用
  • tshark/wireshark/tcpdump、sniffnet、netstat、ss、iftop、bandwhich などのツールに触発されています
  • 一部のコードはバイブコーディングされています(OMG)/ LLMの神々のご加護がありますように

ドキュメントの移行

一部のセクションは、整理を改善するために専用ファイルに移動されました:

  • 権限設定:INSTALL.md - 権限設定 に移動しました
  • インストール手順:INSTALL.md に移動しました
  • 詳細な使用方法:USAGE.md に移動しました
  • アーキテクチャの詳細:ARCHITECTURE.md に移動しました
ツールをダウンロード
state:
proto:
/(?i)pattern/
  • GeoIPエンリッチメント:ローカルのMaxMind GeoLite2による国別ルックアップ。ネットワーク呼び出しはありません。
  • Kubernetes帰属(オプションの kubernetes 機能):接続をポッド、ネームスペース、コンテナにマッピングし、詳細ペイン、JSON/PCAPNGエクスポート、および pod:、ns:、container: フィルターに表示します。公式Dockerイメージで有効化されています。クラスター上では、kubectl-rustnet プラグインを使用して、一時的なデバッグポッドとして実行できます。USAGE.md を参照してください。
  • クロスプラットフォーム:Linux、macOS、Windows、FreeBSDに対応。
  • 概要
    ライブ統計とスパークラインを備えた接続テーブル
    詳細
    接続ごとの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へのHTTPS
    • process:firefox state:quic_connected - FirefoxのQUIC接続
    • dport:22 app:openssh state:established - 確立済みのOpenSSH接続