⚡ 59 個の開発ツールを、常に最新に — 上流の新しいリリースは数時間以内に apt に届きます。 Discord に参加

📅 より、apt ミラーの利用にはサブスクリプションが必要になります。 料金を見る · 🆓 ずっと無料のミラーがあります

🕵️ 最新の mitmproxy を Ubuntu にインストール

TLS に対応した、対話型のインターセプト HTTP プロキシ

最新バージョン: 12.2.3 · 更新日 2026-09-29
提供元バージョン
deb.griffo.io12.2.3 ✅
公式 Ubuntu8.1.1 🛑
← ホームに戻る
📌 特定のリリースに入れますか? Ubuntu 22.04 (jammy) · Ubuntu 24.04 (noble) · Ubuntu 25.10 (questing) · Ubuntu 26.04 (resolute)

mitmproxy とは

mitmproxy はペネトレーションテスターとソフトウェア開発者のための、TLS に対応した対話型のインターセプト HTTP プロキシです。ブラウザ、スマートフォン、CLI、コンテナ丸ごとをこれに向ければ、すべてのリクエストとレスポンスが目の前を通ります。ヘッダー、ボディ、タイミング、TLS の詳細。飛んでいる途中のリクエストを止めて書き換えてから送り出すことも、100 回リプレイすることも、数行の Python でトラフィックを自動的に書き換えることもできます。HTTP/1、HTTP/2、HTTP/3、WebSocket、生の TLS を話し、通常、透過、リバース、アップストリーム、SOCKS5、WireGuard、ローカルキャプチャの各モードで動きます。1 つのパッケージにフロントエンドが 3 つ。対話型コンソール UI の mitmproxy、同じものをブラウザで使う mitmweb、そして HTTP 版 tcpdump とも言えるコマンドライン版の mitmdump です。

🚀 最新版が効いてくる理由: 公式アーカイブにある mitmproxy は 2022 年リリースの 8.1.1 で、Debian は trixie からは丸ごと外しています。それ以降のものはすべて欠けています。WireGuard モード、1 つのインスタンスで複数のプロキシモードを動かす機能、ローカルキャプチャモード、完全な HTTP/3、HAR の読み込みと書き出し、そして実際のサーバーの TLS スタックや HTTP/2 の癖に対する数年分の修正。インターセプトプロキシは今のクライアントが話すものを理解できてこそ役に立ちますし、今のドキュメントを見て書いたアドオンスクリプトは今の API を前提にしています。

⚡ mitmproxy の主な機能

🔓 TLS の中まで見える

mitmproxy は初回起動時に ~/.mitmproxy/ に自前の認証局を作り、訪れるホストごとにその場で証明書を発行します。クライアントでその CA を一度信頼すれば、HTTPS の通信がリクエスト単位で読めるようになります。

✋ 止めて、書き換える

コンソールで i を押して ~d api.example.com のようなフィルターを渡すと、合致したリクエストがその場で止まります。e でメソッド、URL、ヘッダー、ボディを編集し、a で送り出します。

🔁 何でもリプレイ

r はコンソールからリクエストを 1 件リプレイします。-w でセッションを保存しておけば、--client-replay でクライアント側を再生したり、--server-replay で記録したレスポンスをクライアントに返したりできます。

🐍 Python アドオン

-s script.py でスクリプトを読み込めば、すべてのリクエスト、レスポンス、WebSocket メッセージ、TLS ハンドシェイクにフックできます。ヘッダーの書き換え、エンドポイントのモック、トラッキングの除去、ファイルへのログ出力。アドオン API は mitmproxy 自身の機能が使っているのと同じものです。

🧭 あらゆるプロキシモード

通常、透過、リバース(--mode reverse:https://example.com)、アップストリーム、SOCKS5、スマートフォンや VM 向けの WireGuard、そして単一アプリケーションのローカルキャプチャ。--mode を複数回渡せば、いくつものモードを同時に動かせます。

🌐 コンソール、Web、ヘッドレス

ターミナルや SSH セッションにはキーボード操作のコンソール、クリックで操作するフロー一覧には http://127.0.0.1:8081 の mitmweb、スクリプトや CI ジョブ、無人の長時間キャプチャには mitmdump。

🚀 公式アーカイブより、いつも先へ: Debian と Ubuntu は、リリース時点でパッケージのバージョンを固定します。このリポジトリは上流の新しいリリースを、たいてい数時間以内に公開します。apt upgrade を実行するだけで、常に最新版を使い続けられます。

📦 deb.griffo.io からインストールする

コマンドの実行方法

ステップ 1: リポジトリを追加する

sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt update
install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt update

🆓 ずっと無料のミラーがあります。 deb-free.griffo.io は、アカウントもサブスクリプションもなしでパッケージをずっと無料で配布しています。上流より最大2か月遅れ、セキュリティ修正は即座に公開されます。現在収録しているのは cliamp、Ghostty、lazydocker、Oh My Posh、Uncloud と Zed です。mitmproxy は含まれていないため、今日入手する方法は上のリポジトリだけですが、ご要望があれば追加できます。

無料ミラーの仕組み →

ステップ 2: mitmproxy をインストールする

# 最新の mitmproxy をインストール
sudo apt install mitmproxy

# パッケージは 1 つ、コマンドは mitmproxy、mitmweb、mitmdump の 3 つ。
# Python と OpenSSL を同梱しているので、ほかには何も引き込みません

# インストールを確認
mitmproxy --version
mitmdump --version
# 最新の mitmproxy をインストール
apt install mitmproxy

# パッケージは 1 つ、コマンドは mitmproxy、mitmweb、mitmdump の 3 つ。
# Python と OpenSSL を同梱しているので、ほかには何も引き込みません

# インストールを確認
mitmproxy --version
mitmdump --version

ステップ 3: 最初の起動

# コンソール UI を起動。ポート 8080 で待ち受けます
mitmproxy

# あるいは Web UI。http://127.0.0.1:8081 が開きます
mitmweb

# 別のターミナルから、プロキシ経由でリクエストを送る
curl -x http://127.0.0.1:8080 http://example.com

# 初回起動で ~/.mitmproxy/ に CA ができています。クライアントを
# プロキシ経由にして http://mitm.it を開けばそのクライアントに入れられ、
# このマシン全体で信頼させるならこうします
sudo cp ~/.mitmproxy/mitmproxy-ca-cert.pem /usr/local/share/ca-certificates/mitmproxy.crt
sudo update-ca-certificates
# コンソール UI を起動。ポート 8080 で待ち受けます
mitmproxy

# あるいは Web UI。http://127.0.0.1:8081 が開きます
mitmweb

# 別のターミナルから、プロキシ経由でリクエストを送る
curl -x http://127.0.0.1:8080 http://example.com

# 初回起動で ~/.mitmproxy/ に CA ができています。クライアントを
# プロキシ経由にして http://mitm.it を開けばそのクライアントに入れられ、
# このマシン全体で信頼させるならこうします
cp ~/.mitmproxy/mitmproxy-ca-cert.pem /usr/local/share/ca-certificates/mitmproxy.crt
update-ca-certificates

🎯 基本的な使用例

通信をキャプチャする:

# 別のポートで待ち受ける
mitmproxy --listen-port 9090

# 1 つのコマンドだけをプロキシ経由にする
HTTPS_PROXY=http://127.0.0.1:8080 curl https://example.com

# UI なしで、すべてをファイルに記録する
mitmdump -w session.mitm

# 1 つのホスト宛てのリクエストだけを表示する
mitmdump "~d api.example.com"

# ブラウザの開発者ツールやバグ報告用に HAR ファイルを保存する
mitmdump --set hardump=./session.har

リプレイと調査:

# 保存したセッションをコンソールで開く
mitmproxy -r session.mitm

# プロキシを起動せずに、その中の POST リクエストを表示する
mitmdump -n -r session.mitm "~m POST"

# 記録したリクエストをもう一度送る
mitmdump -n --client-replay session.mitm

# 本物のサーバーの代わりに、記録したレスポンスでクライアントに答える
mitmdump --server-replay session.mitm

プロキシモードとアドオン:

# 1 台のサーバーの前に立つリバースプロキシ
mitmproxy --mode reverse:https://example.com --listen-port 8443

# SOCKS5 と通常のプロキシを同じインスタンスで
mitmdump --mode socks5 --mode regular

# WireGuard: mitmweb に出る QR コードをスマートフォンの WireGuard アプリで読む
mitmweb --mode wireguard

# Python アドオンで通信を書き換える。たとえば addon.py の中身は:
#   def response(flow):
#       flow.response.headers["x-seen-by"] = "mitmproxy"
mitmdump -s addon.py

🔧 ツール連携

mitmproxy は、あなたがすでに使っている道具と、それらが話すネットワークの間に入ります:

  • curl、wget、たいていの CLI: HTTP_PROXY と HTTPS_PROXY を尊重するものなら環境変数 1 つで mitmproxy を通り、curl -x ならコマンド単位で通せます
  • ブラウザとスマートフォン: プロキシをポート 8080 に向けて http://mitm.it を開き、そのプラットフォーム用の CA を入れます。Android や iOS なら、プロキシ設定なしで WireGuard モードも使えます
  • ブラウザの開発者ツール: hardump は HAR ファイルを書き出し、mitmproxy は -r で HAR ファイルを読み戻せるので、キャプチャを Chrome や Firefox との間で双方向にやり取りできます
  • Python アドオン: -s で読み込むスクリプトは mitmproxy 同梱の Python の中で動くので、標準ライブラリと mitmproxy が同梱しているものは import できますが、システムの python3 向けに入れたパッケージは使えません
  • テストスイートと CI: mitmdump に --server-replay を付ければ記録したレスポンスを返すので、不安定な外部 API も結合テストで再現可能になります

🚀 deb.griffo.io を選ぶ理由

📊 リポジトリの比較:
  • 公式 Ubuntu: noble、questing、resolute の universe には 2022 年の 8.1.1、jammy にはさらに古い 6.0.2 があるだけです
  • pipx や pip: 最新にはなりますが、手元のシステム Python に縛られ、apt からは見えません
  • 上流の tarball: このパッケージと同じスタンドアロンビルドですが、展開も更新も手作業です
  • deb.griffo.io: 最新版を自動更新でお届け

📦 パッケージのビルドリポジトリ

Ubuntu パッケージは、この GitHub リポジトリで自動的にビルド・管理されています:

🔗 関連パッケージ

deb.griffo.io では、こちらも配布しています:

🎯 こんな方に: モバイルアプリや CLI がバックエンドに何を送っているかを正確に見たいとき、OAuth のリダイレクトや Cookie をデバッグするとき、遅い API や壊れた API にクライアントがどう振る舞うかを試すとき、Web アプリケーションのペネトレーションテストに、そして一度きりの手動テストを繰り返せる Python スクリプトに変えたいときに。

📦 このリポジトリの最近のリリース

❓ よくある質問

mitmproxy は公式の Ubuntu リポジトリにありますか?

あります。ただし公式 Ubuntu アーカイブが配布しているのは mitmproxy 8.1.1 で、このリポジトリは上流のリリースから数時間以内に再ビルドした mitmproxy 12.2.3 を配布しています。

Ubuntu に最新の mitmproxy を入れるには?

上の手順で deb.griffo.io リポジトリを一度追加してから、sudo apt install mitmproxy を実行してください。新しいリリースは、いつもの sudo apt upgrade で届きます。

パッケージは署名されていますか? どのようにビルドされていますか?

すべてのパッケージはリポジトリの GPG 鍵(EA0F721D231FDD3A0A17B9AC7808B4DD62C41256)で署名されており、誰でも中身を確認できる公開の GitHub パッケージングリポジトリで、上流のリリースからビルドされています。

Ubuntu のどのリリースに対応していますか?

Ubuntu 22.04 Jammy、24.04 Noble、25.10 Questing、26.04 Resolute。