「クライアント・サーバ間の通信データを確認したい」
「スマホアプリ開発を効率化したい」
「気軽に利用できるプロキシを用意したい」
このような場合には、mitmproxyがオススメです。
この記事では、mitmproxyのインストール方法を解説しています。
本記事の内容
- mitmproxyとは?
- mitmproxyのシステム要件
- mitmproxyのインストール
- mitmproxyの動作確認
それでは、上記に沿って解説していきます。
mitmproxyとは?
mitmproxyは、Pythonで開発されたプロキシになります。
Pythonで開発されているため、Pythonとの連携が容易です。
mitmproxyに関する詳細は、次の記事で説明しています。
上記の記事でも、mitmproxyのインストールを説明しています。
しかし、その内容が若干古くなっています。
また、内容が決してわかりやすいとは言えません。
mitmproxyのインストール以外も説明しています。
そのため、mitmproxyのインストールがかなりボヤケた記事になっています。
そこで、mitmproxyのインストールに絞った手順を改めてまとめました。
その内容を以下で説明しています。
mitmproxyのシステム要件
現時点(2022年2月)でのmitmproxyの最新バージョンは、7.0.4となります。
この最新バージョンは、2021年12月3日にリリースされています。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
サポート対象となるPythonのバージョンは、以下となっています。
- Python 3.8
- Python 3.9
- Python 3.10
これは、かなりサポート対象となる範囲が絞られています。
以下のPython公式開発サイクルよりも厳しい条件です。
バージョン | リリース日 | サポート期限 |
3.6 | 2016年12月23日 | 2021年12月23日 |
3.7 | 2018年6月27日 | 2023年6月27日 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
3.10 | 2021年10月4日 | 2026年10月 |
もし古いPythonを利用しているなら、これを機会にアップグレードしましょう。
Python 3.10のインストールは、次の記事でまとめています。
今なら、Python 3.10.2が最新となります。
mitmproxyのシステム要件をまとめると、次の一言になります。
「mitmproxyではPythonのバージョンに要注意!!」
以上、mitmproxyのシステム要件を説明しました。
次は、mitmproxyのインストールを行います。
mitmproxyのインストール
今回の検証では、次のOSを利用しています。
$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=20.04 DISTRIB_CODENAME=focal DISTRIB_DESCRIPTION="Ubuntu 20.04.3 LTS"
Pythonは別途インストールしています。
別途インストールしている理由は、次の記事で解説しています。
そして、以下が別途インストールしたPythonとなります。
$ python3 -V Python 3.10.2
さらには、Pythonの仮想環境を利用しています。
仮想環境は簡単に利用できます。
仮想環境を利用する理由は、mitmproxyには多くの依存関係があるからです。
mitmproxyのインストールには、仮想環境の利用をオススメします。
では、mitmproxyのインストールを行っていきます。
まずは、現状のインストール済みパッケージを確認しておきます。
$ pip list Package Version ---------- ------- pip 22.0.3 setuptools 60.9.3
次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、mitmproxyのインストールです。
mitmproxyのインストールは、以下のコマンドとなります。
pip install mitmproxy
インストールには、少しだけ時間がかかります。
終了したら、どんなパッケージがインストールされたのかを確認します。
$ pip list Package Version ---------------- ---------- asgiref 3.4.1 blinker 1.4 Brotli 1.0.9 certifi 2021.10.8 cffi 1.15.0 click 8.0.3 cryptography 3.4.8 Flask 2.0.3 h11 0.12.0 h2 4.1.0 hpack 4.0.0 hyperframe 6.0.1 itsdangerous 2.1.0 Jinja2 3.0.3 kaitaistruct 0.9 ldap3 2.9.1 MarkupSafe 2.1.0 mitmproxy 7.0.4 msgpack 1.0.3 passlib 1.7.4 pip 22.0.3 protobuf 3.18.1 publicsuffix2 2.20191221 pyasn1 0.4.8 pycparser 2.21 pyOpenSSL 20.0.1 pyparsing 2.4.7 pyperclip 1.8.2 ruamel.yaml 0.17.16 setuptools 60.9.3 six 1.16.0 sortedcontainers 2.4.0 tornado 6.1 urwid 2.1.2 Werkzeug 2.0.3 wsproto 1.0.0 zstandard 0.15.2
前述したように、これだけの数のパッケージに依存しています。
だから、Python仮想環境の利用を使いましょう。
以上、mitmproxyのインストールを説明しました。
次は、mitmproxyの動作確認を行います。
mitmproxyの動作確認
mitmproxyの動作確認を行います。
インストールしたmitmproxyが、ちゃんと起動するかどうかの確認です。
mitmproxyを起動するには、次のコマンドを利用します。
$ mitmproxy
上記を実行して、次のように表示されればOKです。
mitmproxyは、正常に動作しています。
しかし、次のようなエラーが出る場合はあります。
OSError: [Errno 98] error while attempting to bind on address ('0.0.0.0', 8080): アドレスは既に使用中です mitmproxy has crashed! Please lodge a bug report at: https://github.com/mitmproxy/mitmproxy/issues
「crashed」とか、見たくありませんよね。
でも、このエラーはすぐに解決できます。
mitmproxyは、デフォルトでポート8080を利用します。
上記のエラーは、ポート8080が利用できないというエラーです。
このような場合には、mitmproxyを別のポートで起動させましょう。
別ポートで起動するには、次のように指定するだけです。
$ mitmproxy --listen-port 9000
上記条件で実行した場合、次のように表示されます。
以上、mitmproxyの動作確認を説明しました。