前提:之前我是在服务器上做了mitmproxy透明代理,后面因需求将安装在树莓派4B上,实现端口转发。
一、检查自己设备的环境
1.检查树莓派架构
(why?是因为在之前我根本分不清arm和x86架构,只是听过手机是arm架构,所以在这里一定先检查自己的设备环境)
uname -m
#这将显示树莓派的架构类型,例如 armv7l 或 aarch64。
lscpu
#将显示详细的 CPU 信息,包括架构、型号和其他相关信息
2.同时需要检查自己的 GLIBC版本如何查看 ,因为版本不匹配,所以导致后面我在安装当前最新版本启动失败后,安装了低版本mitmproxy6.0.2。
在后续的安装最新版本过程中,会出现版本不兼容,所以采取直接安装低版本的:mitmproxy-6.0.2-py3-none-any.whl
ldd --version
#在后续我安装目前最新的mitm,运行失败,并报错如下
ImportError: /lib/arm-linux-gnueabihf/libc.so.6: version GLIBC_2.33' not found (required by /home/power/.pyenv/versions/3.10.1/lib/python3.10/site-packages/mitmproxy_rs/mitmproxy_rs.abi3.so)
#解决方法:1.升级GLIBC 2.降低mitm版本。3.使用虚拟机或者docker
二、安装
pip3 install mitmproxy-6.0.2-py3-none-any.whl
三、常见报错处理
1.python版本过低导致,安装过程中我将自己的python版本升级到3.10.1。并且安装了pyenv进行管理python环境。
##1.确保系统有安装 pyenv 所需的依赖项。这些依赖项通常包括构建工具和库。
sudo apt update
sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev \
liblzma-dev python-openssl git
##2.安装 pyenv
curl https://pyenv.run | bash
##3.配置shell,~/.bashrc
export PATH="/home/power/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
. "$HOME/.cargo/env
##4.重新加载 shell 配置文件或重新启动 shell
source ~/.bashrc
##5.列出可用的 Python 版本:
pyenv install --list
##6.安装指定版本的 Python:
pyenv install 3.10.1
##7.设置全局 Python 版本,切换版本
pyenv global 3.10.1
##验证安装
python --version
2.使用最新版本的pip。注意自己的pip版本和python版本对应
pip3 install --upgrade pip
3.在安装时,编译出现问题,遇到需要升级rust
#1.卸载原有的rust
sudo apt remove rustc
#2.安装新的
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
###在安装过程中,直接选择1
##验证安装
rustc --version
rustup --version
# 注意事项
# 备份配置和数据:在卸载前,确保备份任何与 Rust 相关的配置文件或数据,特别是自定义的 cargo 配置。
# 环境变量:安装 rustup 后,它会自动设置环境变量来使用 rustup 管理的 Rust 版本。如果有手动设置的 PATH,需要确保清除旧的 Rust 路径。