
リアルタイムネットワークトラフィックビジュアライザー — コンピュータが行うすべての接続を可視化。プライバシー優先、100% ローカル。 / Visualiseur de trafic réseau en temps réel, 100% local.
Snitchはリアルタイムのネットワークトラフィック可視化ツールです。 お使いのコンピューターが行うすべての接続 — 誰と通信しているか、どこにいるか、どのアプリが担当しているか — を確認できます。
インターフェース全体は英語とフランス語で利用可能です。右上ツールバーのEN / FRトグルを使用してください。
127.0.0.1で実行されます。トラフィックデータがマシンから離れることはありません。| 機能 | 説明 |
|---|---|
| Force Graph | ライブノードグラフ — あなたのマシンが中心、すべての接続がノードとして表示されます |
| World Map | インタラクティブな地球儀上にアニメーションアークで地理位置情報付きIPを表示 |
| 15/30/60-min Timeline | SQLiteにローカルに保存されるスライディング履歴(24時間保持) |
| Anomaly Detection | ポートスキャン、ビーコン、潜在的なデータ流出をフラグ付け |
| Process Attribution | どのアプリがどのトラフィックを生成しているかを知る(接続ごとに上位5つ) |
| LAN Scanner | システムARPテーブルを介したパッシブ検出(ブロードキャストスキャンなし) |
| Privacy Score | 送信トラフィックの露出のリアルタイムスコア |
| Per-app View | プロセスごとの宛先、ボリューム、60分間の履歴 |
| Alert Suppression | UIで管理可能な、永続化された「このホスト/タイプを無視」ルール |
| Settings Panel | 言語、保持期間、フィルター、同意ゲート付きGeoIPダウンロード、診断 |
| Tracker Detection | 編集可能なデータファイル(backend/classifier/lists/)として提供されるサフィックス一致ドメインリスト |
| Bandwidth Monitor | ライブMB/秒スパークライン |
| EN / FR UI | 完全なバイリンガルインターフェース、ワンクリックで切り替え |
| プラットフォーム | パッケージ |
|---|---|
| macOS (Apple Silicon) | brew install --cask aixisstudio/tap/snitch — または Snitch-1.0.4-macos-arm64.zip |
| Linux | sudo docker compose up --build — Docker (Linux)を参照 |
| Windows | ソースからビルド — インストーラーのビルドを参照 |
または最新リリースを入手してください: github.com/aixisstudio/Snitch/releases
macOS初回実行 / Premier lancement macOS — Snitchはアドホック署名されており、公証されていません(有料のApple Developer IDはありません)。上記の
brew install --caskは、検疫フラグを削除します。手動zipの場合:右クリック → 開く、またはxattr -dr com.apple.quarantine /Applications/Snitch.appを実行します。初回起動時にSnitchは管理者パスワードを一度だけ要求します — パケットキャプチャにはtcpdump/Wiresharkと同様に必要です。UI自体は非特権のままです。FR — Snitchはアドホック署名されており、公証されていません(有料のDeveloper IDはありません)。上記の
brew install --caskは、検疫フラグを削除します。手動zipの場合:右クリック → 開く、またはxattr -dr com.apple.quarantine /Applications/Snitch.appを実行します。初回起動時にSnitchは管理者パスワードを一度だけ要求します — パケットキャプチャにはtcpdump/Wiresharkと同様に必要です。UI自体は非特権のままです。
| レイヤー | テクノロジー |
|---|---|
| Packet capture | ctypes → libpcap — Npcap (Windows) / libpcap (Linux/macOS) — 独自のパーサー (IPv4/IPv6/TCP/UDP/DNS/TLS-SNI) |
| Backend API | FastAPI — WebSockets — SQLite |
| Frontend | React 18 — Vite — D3.js v7 — TopoJSON |
| Desktop wrapper | Electron 44 |
| Geolocation | オフラインのみ — DB-IP Lite (CC BY 4.0) はbackend/data/geo/にgzip圧縮されてバンドルされており、初回実行時に解凍されます。MaxMind GeoLite2 .mmdbもサポートされています |
data/api_token.txtに保存されます。http://localhost:8000/?token=<TOKEN>でUIを開くか(またはプロンプトが表示されたら入力します)。127.0.0.1にバインドされます。LANアクセスを明示的に希望する場合のみSNITCH_BIND=0.0.0.0を設定してください(トークン認証は引き続き適用されます)。localhost:5173、バックエンド自身のオリジン、およびElectronのfile://ページのみが接続できます。backend/data/geo/にgzip圧縮されて同梱されており、初回起動時に<data_dir>/geo/に自動抽出されます — 地理位置情報はすぐに機能し、ネットワーク呼び出しはゼロです。新しいGeoLite2-City.mmdb/GeoLite2-ASN.mmdb (MaxMind) を<data_dir>/geo/にドロップするか、設定パネルから新しいDB-IP Liteをダウンロードすることもできます(明示的な同意が必要で、これが唯一の可能な外部呼び出しです)。snitch.db(retention_hours設定で構成可能な24時間スライディングウィンドウ)とdata/logs/snitch.logはマシンから離れることはありません。テレメトリもありません。唯一可能な外部呼び出しは、オプトインのDB-IP Liteダウンロード(設定 → 「DB-IP Liteをダウンロード」)であり、明示的なクリックが必要です。alert_suppressionsテーブル)、アラートが発行またはログに記録される前に適用され、POST /alerts/ignore / DELETE /alerts/ignore / GET /alerts/ignoreを介して再起動後も存続します。host_history、process_history)に保持され、アプリケーションごとのビューとGET /history/host/{ip} / GET /history/process/{name}を強化します。GET /diagnosticsは、ランタイムのJSONスナップショット(キャプチャ状態、地理DBステータス、インターフェース、バージョン、パス)を秘密情報なしで返します。設定パネルからエクスポートしたり、ログディレクトリを開いたりできます(Electron)。*.local (Apple/Linux)、LLMNR & NetBIOS名 (Windows)、DHCPホスト名オプション、さらに完全なオフラインIEEE OUIベンダーテーブル、そしてゲートウェイはルーターとして自動検出されます。Dockerデプロイメントは、Docker以外何もインストールせずにSnitchを実行したいLinuxユーザー向けです。
パケットキャプチャはnetwork_mode: hostを介して機能します — コンテナは実際のホストトラフィックを認識します。
注: Mac/Windows上のDocker DesktopはVM内で実行され、ホストからのトラフィックをキャプチャできません。これらのプラットフォームではElectronアプリを使用してください。
# Clone and enter the repo / Cloner puis entrer dans le dépôt
git clone <your-repo-url> snitch
cd snitch
# Optional: place your MaxMind GeoLite2-City.mmdb in data/ for offline geolocation
# Optionnel : placez votre GeoLite2-City.mmdb dans data/ pour la géolocalisation hors ligne
mkdir -p data
# Build and run (requires Docker + root/sudo for raw socket capture)
# Construire et lancer (Docker + root/sudo requis pour la capture)
sudo docker compose up --build
APIトークン(起動時に一度表示されるか、cat data/api_token.txtで確認)を取得し、ブラウザで**http://localhost:8000/?token=TOKEN**を開きます。
バックグラウンドで実行するには: sudo docker compose up -d --build
Dockerの制限事項:
要件:
デモモード / Mode démo —
SNITCH_DEMO=1でバックエンドを実行すると、 実際のパイプラインを通じて合成トラフィックが供給されます。root権限もlibpcapも実際の パケットも触れません。スクリーンショット、テスト、プレビューに最適です。SNITCH_DEMO=1でバックエンドを起動すると、合成トラフィックが 実際のパイプラインに注入されます — root権限もlibpcapも実際のパケットも使用しません。
# Backend (admin terminal) — API at http://127.0.0.1:8000
cd backend
pip install -r requirements.txt
python run_backend.py # prints the API token once
# Frontend (separate terminal) — UI at http://localhost:5173/?token=TOKEN
cd frontend
npm install
npm run dev