【Ubuntu】mitmproxyのインストール

【Ubuntu】mitmproxyのインストール サーバー

「クライアント・サーバ間の通信データを確認したい」
「スマホアプリ開発を効率化したい」
「気軽に利用できるプロキシを用意したい」

このような場合には、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.62016年12月23日2021年12月23日
3.72018年6月27日2023年6月27日
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月
3.102021年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の動作確認を説明しました。

タイトルとURLをコピーしました