RustNet
プロセス単位で TCP、UDP、QUIC 接続を監視できる、サンドボックス対応のターミナルネットワークモニター。
English | 简体中文 | 日本語
RustNet は、各接続を所有するプロセス、通信量、状態、アプリケーションプロトコルをリアルタイムで表示します。Linux、macOS、Windows、FreeBSD に対応しています。
## 主な機能
- TCP、UDP、QUIC 接続とプロセスの対応付け。詳細には PID、対応プラットフォームでの PPID、実行ファイル、ユーザー/グループ名、照合の信頼度を表示
- HTTP、TLS/SNI、DNS、SSH、QUIC などの深層パケット解析
- 往復時間(RTT)、再送、順序入れ替わり、帯域幅、接続状態のリアルタイム表示
- `port:`、`process:`、`sni:`、`state:` などのフィルター
- 注釈付き PCAPNG、PCAP と JSONL sidecar、JSON ログの出力
- ローカル GeoIP データベースによる国、ASN、都市情報
- Linux Landlock、macOS Seatbelt、Windows の権限削減によるサンドボックス
- オプションの Kubernetes pod、namespace、container 帰属情報
## インストール
macOS または Linux:
```bash
brew install rustnet
```
Ubuntu 25.10 以降:
```bash
sudo add-apt-repository ppa:domcyrus/rustnet
sudo apt update && sudo apt install rustnet
```
Fedora 42 以降:
```bash
sudo dnf copr enable domcyrus/rustnet
sudo dnf install rustnet
```
Arch Linux:
```bash
sudo pacman -S rustnet
```
Cargo:
```bash
cargo install rustnet-monitor
```
Windows では Npcap を WinPcap API 互換モードでインストールし、管理者 PowerShell で実行します。
```powershell
choco install rustnet
```
Docker、FreeBSD、ソースビルド、その他の方法は [INSTALL.md](INSTALL.md) を参照してください。
## 実行
パケットキャプチャには通常、昇格された権限が必要です。
```bash
sudo rustnet
```
Linux 5.8 以降では必要な capabilities を付与すると、sudo なしで実行できます。
```bash
sudo setcap 'cap_net_raw,cap_bpf,cap_perfmon+eip' "$(which rustnet)"
rustnet
```
よく使うオプション:
```bash
rustnet -i eth0 # インターフェースを指定
rustnet -i any # Linux ですべてのインターフェースを監視
rustnet --show-localhost # localhost 接続を表示
rustnet --no-resolve-dns # 逆引き DNS を無効化
rustnet --no-dpi # 深層パケット解析を無効化
rustnet --pcapng-export capture.pcapng # 注釈付き PCAPNG を出力
```
## 基本操作
| キー | 操作 |
|---|---|
| `q` | 終了。確認のため 2 回押す |
| `Tab` / `Shift+Tab` | 次または前のタブ |
| `1` から `5` | Overview、Details、Activity、Graph、Help |
| `↑/k` `↓/j` | 選択を移動 |
| `Enter` | 接続の詳細を表示 |
| `/` | フィルター入力 |
| `s` / `S` | 並び替え列または方向を変更 |
| `a` | プロセス単位のグループ表示 |
| `t` | 終了済み接続の表示を切り替え |
| `r` | 表示、並び替え、フィルターをリセット |
フィルター例:
```text
/process:firefox
/dport:443 sni:github.com
/state:established proto:tcp
```
すべてのオプション、キー操作、フィルター、ログ、PCAP 出力については [USAGE.md](USAGE.md) を参照してください。
## セキュリティ
RustNet は非プロミスキャスな読み取り専用キャプチャを行い、パケット、ルーティング、ファイアウォールを変更しません。初期化後に不要な権限を削除し、対応 OS ではサンドボックスを有効にします。詳細は [SECURITY.md](SECURITY.md) を参照してください。
## 関連ドキュメント
- [INSTALL.md](INSTALL.md): 詳細なインストール、権限設定、トラブルシューティング
- [USAGE.md](USAGE.md): 詳細な使用方法
- [ARCHITECTURE.md](ARCHITECTURE.md): 設計とプラットフォーム別実装
- [CONTRIBUTING.md](CONTRIBUTING.md): コントリビューションガイド
## ライセンス
Apache License 2.0。詳細は [LICENSE](LICENSE) を参照してください。