
netwatch v0.27.0
ターミナル上でのリアルタイムネットワーク診断。ワンコマンド、設定不要、即時可視性。
NetWatch
接続の背後にあるプロセスを特定し、あなたが鍵を握るTLSを読み取り、何が問題でどう修正すべきかを教えてくれる、ターミナル向けネットワークモニター。
netwatch --view dense。4つのボックス、装飾なし、すべてのキーバインドは境界線上に。ダウンロードは軸から上へ、アップロードは下へ伸びる。
単一バイナリ、設定不要。sudo netwatch でL7デコード付きのライブキャプチャ、可能な場合はプロセス属性、そして学習したベースラインが崩れたときにイシューを起動し、修正が維持されるとそれをクローズする診断エンジンが手に入る。
インストール
brew install netwatch # macOS / Linux
nix-shell -p netwatch # NixOS / Nix
paru -S netwatch-tui-bin # Arch
scoop install netwatch # Windows (Npcapが必要)
cargo install netwatch-tui # Rustとlibpcapヘッダーがある環境ならどこでも
ビルド済みバイナリはリリースページにある。Linux x86_64/aarch64バイナリはlibpcapを同梱した静的ビルドなので、何もインストールする必要はない。Debianを動かす古いMarvell Kirkwood NASボックス(例: Iomega ix2-dl)向けのarmv5teビルドもある — libpcapは同様に同梱されるが、glibcとlibatomicにリンクするため、libatomic1がインストールされたDebian 12 (bookworm)以降が必要。Windowsは先にNpcapのインストールが必要で、ソースからのビルドにはlibpcap-dev (Debian)、libpcap-devel (Fedora)、またはlibpcap (Arch)が必要。詳細はインストールリファレンスに。
実行
netwatch # インターフェース、接続、設定。特権不要。
sudo netwatch # 昇格したアクセスが必要な場合にキャプチャを有効化
netwatch --lite # 80x24の1画面
netwatch --view dense # 4つのボックス、130x44以上
1から9と0でタブを切り替え、Vで3つのビューを循環、?で全キーを表示。Linuxでsudoなしで実行するには、ケイパビリティを一度付与する: sudo setcap 'cap_net_raw,cap_bpf,cap_perfmon+eip' "$(which netwatch)"(なぜ、そしていつ繰り返す必要があるか)。
できること
診断(タブ9)。 メトリクスごとのベースラインはそれを教えたネットワークにスコープされ、レディネスには1,800の異なるサンプルが必要なため、学習時間はプローブのケイデンスに依存する。25のカタログ化されたルールがあり、18の診断ディテクターが実装済み、7つが統合待ち。ランタイムカバレッジはどの入力が利用可能か、学習中か、古いか、未測定かを示す。抑制グラフは死んだゲートウェイとその結果を1つの所見にまとめる。各原因はそれを他から切り分けたチェックによってランク付けされる。TUIリゾルバの自動変更は引き続き利用不可で、診断は手動ステップを提供する。明示的なLinuxリゾルバコマンドは、管理者が確認した非管理の通常ファイルへの一時的な変更をサポートするが、管理されたリゾルバは引き続き非対応。デモは依然として適用と検証済みリカバリをシミュレートする。既存のジャーナルは起動時に検査され、読めないまたは破損したリカバリレコードは以降のホスト変更をブロックする。イシューはルール自身の成功条件が維持されたときにのみクローズされる。モデルは関与しない。仕組み、設計。
あなたが管理するTLSを復号。 任意のクライアントのSSLKEYLOGFILEをNetWatchに向けると、そのTLS 1.3セッションの平文がPacketsタブでデコードされる。Wiresharkと同じ仕組みなので、鍵を握るトラフィックにのみ機能する。TLS復号。
sudo netwatch # Packets (4) を開く
SSLKEYLOGFILE=/tmp/keys curl https://example.com # 鍵をエクスポートする任意のクライアント
# タブをフィルタ: decrypted:true
Egressドリフト。 Egressタブ(0)は各プロセスが到達するホスト、自律システム、ポートを学習する。Enterでそのベースラインをルールに昇格させると、次の新しい宛先はアラート付きのdriftとして到着する。観測するだけでブロックはしない。判定はsni、ip、asn、ech、drift、no rule、そしてstrict = true下ではundeclaredで、「ASでマッチ」はハイパースケーラーが動かすすべてを許容してしまうため、テーブルはそう明示すべきである。ルール言語とエクスポートスキーマ。
プロセス属性。 プラットフォームのソケットポーリング、macOSではPKTAP、LinuxではオプションのeBPF kprobe(ebpfフィーチャー)。特に短命なフローでは属性が欠落したり古くなったりすることがある。Windowsは独自のネットワーク/プロセスツールを使用する。パーミッション。
脅威検出。 C2ビーコニング、ポートスキャン、DNSトンネリングがバックグラウンドで実行される。クリティカルアラートはフライトレコーダーを凍結するので、あなたが見る前にバンドルが存在する。JA4は各TLSおよびQUICハンドシェイクをフィンガープリントするので、同じクライアントからのすべてのフローにピボットできる。セキュリティとフォレンジック、フライトレコーダー、JA4。
Linuxワーカーサンドボックス。 ワーカーのエントリポイントは処理前に準備されたLandlockファイルシステムポリシーを適用し、キャプチャは最初にそのデバイスを準備する。書き込み可能な許可は専用のアプリケーションディレクトリを使用する。eBPF属性はSDKリーダーフック待ちのため、サンドボックス実行では一時的に無効化されている。ネットワークアクセスは引き続き無制限で、特権キャプチャ/再起動の検証は保留中。スコープと制限。
タブ
| # | タブ | 表示内容 |
|---|---|---|
| 1 | Dashboard | レイテンシタイル、ミラー型スループット、それを運ぶリンク、プロセスごとに集約された接続 |
| 2 | Connections | プロセス、PID、状態、GeoIP、RTT、再送付きのすべてのソケット |
| 3 | Interfaces | アドレス、MTU、レート、エラー、ドロップ |
| 4 | Packets | ライブデコード、TLS 1.3復号、JA4、ストリーム追跡、表示フィルタ、PCAPエクスポート |
| 5 | Stats | プロトコル内訳とハンドシェイクタイミングヒストグラム |
| 6 | Topology | マシン、ゲートウェイ、DNS、トップホスト、traceroute |
| 7 | Timeline | TCP状態別の接続、アラート付き |
| 8 | Processes | プロセスごとの帯域幅 |
| 9 | Diagnose | イシュー、原因、修正、検証済みクローズ。同じオブジェクトからのreport.md |
| 0 | Egress | 学習した宛先、昇格したポリシー、ドリフト |
すべてのキーバインド、表示フィルタ、デコーダ、テーマ、設定。
3つのビュー、1つのキャプチャ
Vで再起動なしにそれらを循環する。コレクターは動き続ける。
Fullは上記の10タブ。
Lite(--lite)は80x24に収まる: スループット、ゲートウェイ/DNS/インターネット到達性、トップトーカー、6つのキー。PiへのSSHセッションやtmuxの分割に。
Dense(--view dense)はヒーローイメージ。130x44が必要で、それより大きければどこまでも拡張する。スループットはセルあたり2サンプルのブライユで、高さで色付けされるので、軸を確認する前にスパイクが読み取れる。接続テーブルは選択行の詳細(カーネルのcwnd、ssthresh、mss、rwndを含む)を自身のボックスの上部に持ち上げる。1から4でボックスを全画面にズーム。DenseとLite。