Mitmproxy 11 发布 —— 完整支持 HTTP/3!

一、HTTP/3 支持

在反向代理模式中,HTTP/3 现在已经可以直接使用,你的 mitmproxy 实例将监听 TCP 和 UDP 两种协议,自动处理所有版本的 HTTP:

bash 复制代码
$ mitmproxy --mode reverse:https://http3.is

本地代理模式和 WireGuard 模式也已支持 HTTP/3:

bash 复制代码
$ mitmproxy --mode wireguard
$ mitmproxy --mode local

我们已经在 Firefox、Chrome、各种 cURL 构建和其他客户端上成功测试 HTTP/3 支持,解决了兼容性问题。

唯一的已知限制 是:Chrome 默认 不信任用户添加的证书颁发机构(CA)用于 QUIC 协议。因此,你可以通过以下方式绕过限制:

  • 使用 Let's Encrypt 等公有信任证书
  • 启动 Chrome 时添加命令行参数
  • 接受 Chrome 自动回退到 HTTP/2

而 Firefox 则没有这个问题。

HTTP/3 的支持始于 2022 年,由 Manuel Meitinger 和 Maximilian Hils 推动开发。如今 QUIC 和 HTTP/3 已成为网络主流协议,我们很高兴 mitmproxy 终于正式支持它了!

二、DNS 支持升级

随着 HTTPS DNS 记录和 ECH(Encrypted Client Hello)等新隐私技术的出现,mitmproxy 的 DNS 功能也迎来了升级:

2.1.支持更多 DNS 查询类型

旧版本中 mitmproxy 使用 getaddrinfo 进行 DNS 查询,该 API 仅支持 A(IPv4)和 AAAA(IPv6)记录,无法处理 HTTPS 类型等新兴记录。

现在我们基于 Rust 的 Hickory DNS 库重写了 DNS 模块,支持任意查询类型,并可自定义 DNS 服务器:

bash 复制代码
$ mitmdump --mode dns --set dns_name_servers=8.8.8.8

2.2. 可选择是否跳过 /etc/hosts

通过 dns_use_hosts_file=false,你可以让 mitmproxy 忽略系统 hosts 文件(如 Linux 的 /etc/hosts),这对透明代理重定向特别有用。

示例对比:

bash 复制代码
# 设置 hosts 映射
$ echo "192.0.2.1 mitmproxy.org" >> /etc/hosts

# 默认启用 hosts 文件
$ mitmdump --mode dns
$ dig @127.0.0.1 +short mitmproxy.org
192.0.2.1

# 忽略 hosts 文件
$ mitmdump --mode dns --set dns_use_hosts_file=false
$ dig @127.0.0.1 +short mitmproxy.org
3.161.82.13

2.3.支持 DNS-over-TCP

DNS 默认使用 UDP,但在响应太大时会自动回退到 TCP。在支持 HTTPS 和复杂记录类型的背景下,DNS-over-TCP 的支持显得尤为关键。mitmproxy 11 现已完整支持!

2.4. 移除 ECH 密钥以保证中间人代理正常

ECH(加密的 Client Hello)是一种前沿隐私技术,目的是隐藏客户端访问的目标域名。但这也影响了 mitmproxy 的证书生成流程 ------ 如果握手信息被加密,mitmproxy 无法得知目标域名。

为此,mitmproxy 现在会主动从 HTTPS 记录中剥离 ECH 密钥,防止客户端加密首次握手。这样,mitmproxy 仍能获取域名并生成有效证书。

虽然这让 mitmproxy 使用起来稍复杂,但我们依然支持这些对整个互联网隐私保护非常有益的技术。

相关推荐
梦帮科技6 小时前
领域认知知识库图谱注入:从双式记账图网络到高质量问答对自动化合成流水线
运维·网络·数据库·人工智能·矩阵·架构·自动化
菜鸡养成中...8 小时前
卫星通信协议笔记1-协议栈
网络
hzxpaipai8 小时前
杭州企业官网怎么建设?从策划到上线的5步建站方法
运维·服务器·前端·网络
smartpi_ai8 小时前
通用脱机烧录器为什么烧不进 CI-03?下载协议的门槛、免唤醒 10 条的建议值属性
服务器·网络·ci/cd
ITxiaobing20239 小时前
自研 IP 库与 AppsFlyer 判定不一致的排查实践
网络·网络协议·tcp/ip
天天喝旺仔9 小时前
gRPC 底层原理:HTTP/2 多路复用、Protobuf 序列化与四种流模式
分布式·http·微服务·rpc
2501_9378609410 小时前
中篇:TCP 为什么可靠又高效?滑动窗口、流量控制、拥塞控制与粘包全解析
服务器·网络·tcp/ip
刚及格的陆拾伍10 小时前
Wi-Fi核心知识精要:从频段到帧结构全解析
网络·物联网·网络协议·信息与通信·iot
xiaoye-duck11 小时前
《Linux 网络编程》深入理解 IO 多路复用:select 函数详解与 Echo 服务实战
linux·网络
xfan_me11 小时前
SSL 证书落地应用与网站安全加固
网络协议·安全·ssl