⚡ 59 个开发者工具,始终保持最新 — 上游每次发布后数小时内即可通过 apt 获取。 加入 Discord

📅 自 起,使用本 apt 镜像将需要订阅。 查看价格 · 🆓 有一个永久免费的镜像

🕵️ 在 Debian 上安装最新版 mitmproxy

支持 TLS 的交互式拦截 HTTP 代理

最新版本:12.2.3 · 更新于 2026-09-29
来源版本
deb.griffo.io12.2.3 ✅
官方 Debian🚫 未收录
← 返回首页
📌 要在特定版本上安装? Debian 12 (bookworm) · Debian 13 (trixie) · Debian 14 (forky) · Debian Sid

什么是 mitmproxy?

mitmproxy 是一个面向渗透测试人员和软件开发者、支持 TLS 的交互式拦截 HTTP 代理。把浏览器、手机、命令行工具甚至整个容器指向它,每一个请求和响应都会从这里经过,你能看清一切:请求头、正文、耗时、TLS 细节。你可以把请求在半路停下,改完再放行,重放上百次,或者用几行 Python 自动改写流量。它支持 HTTP/1、HTTP/2、HTTP/3、WebSocket 和原始 TLS,可以作为常规、透明、反向、上游、SOCKS5、WireGuard 或本地捕获代理运行。一个软件包给你三个前端:交互式控制台界面 mitmproxy,同样功能搬进浏览器的 mitmweb,以及命令行版本 mitmdump,相当于 HTTP 版的 tcpdump。

🚀 为什么最新版本很重要: 官方软件源里的 mitmproxy 是 8.1.1,一个 2022 年的版本,而 Debian 干脆把它从 trixie 里移除了。那之后的一切它都没有:WireGuard 模式、一个实例同时运行多种代理模式、本地捕获模式、完整的 HTTP/3、HAR 导入导出,以及多年来针对真实服务器的 TLS 协议栈和 HTTP/2 怪癖的修复。拦截代理只有在听得懂当今客户端说的协议时才有用,而照着当前文档写的插件脚本,期待的也是当前的 API。

⚡ mitmproxy 的主要功能

🔓 看穿 TLS

mitmproxy 首次运行时会在 ~/.mitmproxy/ 里生成自己的证书颁发机构,并为你访问的每个主机即时签发证书。在客户端上信任一次这个 CA,它的 HTTPS 流量就能一条一条地看清楚。

✋ 拦截与编辑

在控制台里按 i,给它一个过滤器,比如 ~d api.example.com,匹配的请求就会原地停住。e 编辑方法、URL、请求头或正文,a 放它继续上路。

🔁 什么都能重放

r 在控制台里重放单个请求。用 -w 保存一次会话,再用 --client-replay 回放客户端一侧,或者用 --server-replay 以录下的响应应答客户端。

🐍 Python 插件

用 -s script.py 加载脚本,挂进每一个请求、响应、WebSocket 消息或 TLS 握手。改写请求头、模拟接口、去掉跟踪、写日志文件:插件 API 与 mitmproxy 自身功能所用的是同一套。

🧭 所有代理模式

常规、透明、反向(--mode reverse:https://example.com)、上游、SOCKS5、面向手机和虚拟机的 WireGuard,以及只捕获单个应用的本地模式。多次传入 --mode 就能同时运行好几种。

🌐 控制台、网页或无界面

键盘驱动的控制台适合终端和 SSH 会话,mitmweb 在 http://127.0.0.1:8081 提供可点选的流量列表,mitmdump 则用于脚本、CI 任务和长时间无人值守的抓包。

🚀 始终领先于官方软件源: 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
sudo apt install extrepo
sudo extrepo enable griffo
sudo apt update

🆓 有一个永久免费的镜像。 deb-free.griffo.io 永久免费提供软件包 — 无需账号、无需订阅,最多落后上游 2 个月,安全修复立即发布。目前收录 cliamp、Ghostty、lazydocker、Oh My Posh、Uncloud 和 Zed;mitmproxy 不在其中,因此今天只能通过上面的仓库安装 — 提出请求即可将其加入。

免费镜像的工作方式 →

🧩 关于 extrepo 选项。 extrepo 是 Debian 官方用于管理第三方仓库的工具:它会替你写好 sources 文件并安装签名密钥,并在使用前先对照签名元数据校验该密钥。本仓库以 griffo 之名登记其中,永久免费镜像则为 griffo-free,因此在 Debian(bookworm、trixie、forky、sid)上,上面的命令就是全部配置。

extrepo 只负责 sources 文件和密钥,订阅凭据仍然要写入 /etc/apt/auth.conf.d/deb.griffo.io.conf。Ubuntu 不在覆盖范围内,因为 extrepo 只发布 Debian 各套件的元数据:在 Ubuntu 上请使用 sudo 或 root 的命令。

第 2 步:安装 mitmproxy

# 安装最新版 mitmproxy
sudo apt install mitmproxy

# 一个软件包,三条命令:mitmproxy、mitmweb 和 mitmdump。
# 它自带 Python 和 OpenSSL,所以不会拉进其他依赖

# 验证安装
mitmproxy --version
mitmdump --version
# 安装最新版 mitmproxy
apt install mitmproxy

# 一个软件包,三条命令:mitmproxy、mitmweb 和 mitmdump。
# 它自带 Python 和 OpenSSL,所以不会拉进其他依赖

# 验证安装
mitmproxy --version
mitmdump --version

第 3 步:第一次运行

# 启动控制台界面,监听 8080 端口
mitmproxy

# 或者网页界面,会打开 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
# 启动控制台界面,监听 8080 端口
mitmproxy

# 或者网页界面,会打开 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

# 只让一条命令走代理
HTTPS_PROXY=http://127.0.0.1:8080 curl https://example.com

# 不开界面,把所有流量录进文件
mitmdump -w session.mitm

# 只显示发往某个主机的请求
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

代理模式与插件:

# 在单个服务器前面做反向代理
mitmproxy --mode reverse:https://example.com --listen-port 8443

# 同一个实例同时提供 SOCKS5 和常规代理
mitmdump --mode socks5 --mode regular

# WireGuard:用手机上的 WireGuard 应用扫描 mitmweb 里的二维码
mitmweb --mode wireguard

# 用 Python 插件改写流量,例如 addon.py 的内容为:
#   def response(flow):
#       flow.response.headers["x-seen-by"] = "mitmproxy"
mitmdump -s addon.py

🔧 工具集成

mitmproxy 站在你已经在用的工具和它们访问的网络之间:

  • curl、wget 和大多数命令行工具: 凡是遵循 HTTP_PROXY 和 HTTPS_PROXY 的程序,一个环境变量就能让它经过 mitmproxy,curl -x 则可以按单条命令设置
  • 浏览器和手机: 把代理设为 8080 端口,打开 http://mitm.it 安装对应平台的 CA;或者在 Android 和 iOS 上用 WireGuard 模式,完全不用设置代理
  • 浏览器开发者工具: hardump 会写出 HAR 文件,mitmproxy 也能用 -r 读回 HAR 文件,抓包因此能在它与 Chrome 或 Firefox 之间双向流转
  • Python 插件: 用 -s 加载的脚本运行在 mitmproxy 自带的 Python 里,可以导入标准库和 mitmproxy 自带的模块,但不能导入为系统 python3 安装的包
  • 测试套件与 CI: 带 --server-replay 的 mitmdump 用录下的响应提供服务,让不稳定的第三方 API 在集成测试里变得可重复

🚀 为什么选择 deb.griffo.io?

📊 仓库对比:
  • 官方 Debian: bookworm、forky 和 sid 里是 2022 年的 8.1.1,当前稳定版 trixie 里则根本没有
  • pipx 或 pip: 版本够新,但绑定在你系统上的某个 Python 上,而且 apt 看不见它
  • 上游的 tarball: 与本软件包相同的独立构建,只是要手动解压、手动更新
  • deb.griffo.io: 最新版本,并自动更新

📦 软件包构建仓库

Debian 软件包在这个 GitHub 仓库中自动构建和维护:

🔗 相关软件包

deb.griffo.io 同样提供:

🎯 特别适合: 看清一个手机应用或命令行工具到底向后端发了什么;调试 OAuth 跳转和 Cookie;测试客户端如何应对缓慢或出错的 API;对 Web 应用做渗透测试;以及把一次性的手工测试变成可重复的 Python 脚本。

📦 本仓库最近发布

❓ 常见问题

mitmproxy 在官方 Debian 软件源中吗?

不在, 官方 Debian 源没有打包 mitmproxy。本仓库目前是唯一的 apt 来源,提供 mitmproxy 12.2.3。

如何在 Debian 上安装最新版 mitmproxy?

按上方说明一次性添加 deb.griffo.io 仓库,然后运行:sudo apt install mitmproxy。之后通过常规的 sudo apt upgrade 获取新版本。

软件包是否有签名?如何构建?

每个软件包都使用仓库的 GPG 密钥(EA0F721D231FDD3A0A17B9AC7808B4DD62C41256)签名,并基于上游发布在公开的 GitHub 仓库中构建,任何人都可以审查。

支持哪些 Debian 版本?

Debian 12 Bookworm、Debian 13 Trixie、Forky 和 Sid。