bandwhich - プロセスごとの帯域幅モニターチートシート
bandwhich は Rust ターミナルユーティリティで、現在のネットワーク使用率を**プロセス、接続、リモート IP/ホスト名ごト に分解して表示します。iftop(接続ごと)または nethogs(プロセスのみ)とは異なり、bandwhich はソケットを所有するプロセスに相関させ、リモートエンドポイントを解決するため、どのアプリケーション(およびどのリモートホスト)が帯域幅を消費しているかをすぐに確認できます。
Installation
| Platform | Command |
|---|
| Cargo(すべてのプラットフォーム) | cargo install bandwhich |
| Arch Linux | sudo pacman -S bandwhich |
| Debian/Ubuntu | sudo apt install bandwhich |
| Fedora | sudo dnf install bandwhich |
| macOS(Homebrew) | brew install bandwhich |
| Nix | nix-env -iA nixpkgs.bandwhich |
| プリビルトバイナリ | GitHub リリースページからダウンロード |
Privileges
bandwhich はパケットをスニッフする必要があるため、昇格した機能が必要です:
# 最も簡単:sudo で実行
sudo bandwhich
# または、バイナリに機能を一度付与(その後 sudo なし、Linux)
sudo setcap cap_net_raw,cap_net_admin=eip $(which bandwhich)
Basic Usage
| Command | Description |
|---|
sudo bandwhich | すべてのインターフェースを監視、ライブ TUI |
sudo bandwhich -i eth0 | 単一インターフェースを監視 |
sudo bandwhich --interface wlan0 | 同じ、長形式 |
bandwhich --help | フルオプションリスト |
bandwhich --version | バージョン |
Key Options
| Option | Description |
|---|
-i, --interface NAME | 監視を 1 つのインターフェースに制限 |
-n, --no-resolve | リバース DNS ルックアップをスキップ(高速、生の IP) |
-r, --raw | マシン読み取り可能、非対話的出力(ロギングに適切) |
-p, --processes | プロセステーブルのみを表示 |
-c, --connections | 接続テーブルのみを表示 |
-a, --addresses | リモートアドレステーブルのみを表示 |
--total-utilization | ライブ UI の代わりに 1 回限りの合計を印刷 |
-s, --show-dns | 接続ビューに DNS クエリを含める |
-d, --dns-server IP | リバースルックアップ用の特定のリゾルバーを使用 |
Interactive Keys
| Key | Action |
|---|
Tab | レイアウトをサイクル / どのテーブルが展開されているかを回転 |
Space | 一時停止 / 再開 |
↑ / ↓ | テーブル内でスクロール |
q / Ctrl+C | 終了 |
Reading the Display
bandwhich は 3 つのライブテーブルを表示します:
| Table | Tells you |
|---|
| プロセス別使用率 | 送受信しているどの実行可能ファイル、上下レート |
| 接続 | 各ソケット:ローカル → リモート、プロトコル、接続ごとのレート |
| リモートアドレス別使用率 | 最もデータを交換しているリモートホスト(解決済み) |
レートは現在の上(▲)および下(▼)スループットとして表示され、約 1 秒ごとに更新されます。
Common Workflows
# 「今、誰が私のアップロードを食べているのか?」— プロセスのみ、DNS ラグなし
sudo bandwhich -p -n
# ノイズの多いインターフェースを調査し、生のストリームをログして後で分析
sudo bandwhich -i eth0 --raw | tee bandwhich-eth0.log
# 使用率の 1 ショットスナップショット(スクリプト/cron)
sudo bandwhich --total-utilization -n
# トップのリモートトーカーを検索(例:流出またはバックアップジョブ)
sudo bandwhich -a
bandwhich vs Other Network Monitors
| Tool | Granularity | Notes |
|---|
| bandwhich | プロセス + 接続 + リモートホスト | Rust TUI、リモートを解決 |
| nethogs | プロセスごと | リモートホストのグループ化なし |
| iftop | 接続ごと | プロセスの属性化なし |
| nload | インターフェースごとの合計 | シンプルな集計グラフ |
| iptraf-ng | インターフェース/接続ごと | 古い ncurses スイート |
Resources