You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

mitmproxy如何自动绕过所有产生连接错误的主机

mitmproxy 自动绕过证书绑定类连接错误主机的实现方法

mitmproxy 没有内置「遇连接错误自动永久绕过对应主机」的开箱功能,但可以通过以下两种无需提前枚举报错主机的方案实现需求,不需要手动维护--ignore-hosts列表:


方案1:运行时钩子动态更新忽略列表(最匹配需求)

通过mitmproxy的插件钩子,在触发TLS握手失败、证书校验错误(包含客户端Certificate Pinning校验失败场景)、服务端连接失败时,自动将对应目标主机加入运行时忽略列表,后续该主机流量直接透传,不经过中间人解密,不会再触发同类错误。
操作步骤:

  • 新建插件文件auto_ignore.py,写入以下代码:
from mitmproxy import ctx
from mitmproxy.addonmanager import Loader
from mitmproxy.connection import Server
from mitmproxy.tls import TlsData

runtime_ignored = set()

def load(loader: Loader):
    # 加载启动时已配置的ignore_hosts规则,避免覆盖原有配置
    for rule in ctx.options.ignore_hosts:
        runtime_ignored.add(rule)

def tls_failed_client(data: TlsData):
    # TLS握手失败(含证书pinning错误)时自动加忽略规则
    server_addr = data.context.server.address
    if not server_addr:
        return
    host = server_addr[0]
    if host in runtime_ignored:
        return
    rule = f"^{host}:.*$"
    runtime_ignored.add(rule)
    ctx.options.ignore_hosts = list(runtime_ignored)
    ctx.log.info(f"Auto bypass host due to TLS error: {host}")

def server_connect_error(data: Server):
    # 服务端连接失败场景同步处理
    if not data.address:
        return
    host = data.address[0]
    if host in runtime_ignored:
        return
    rule = f"^{host}:.*$"
    runtime_ignored.add(rule)
    ctx.options.ignore_hosts = list(runtime_ignored)
    ctx.log.info(f"Auto bypass host due to connection error: {host}")
  • 启动mitmproxy时加载该插件即可:
    mitmproxy -s auto_ignore.py

说明:该方案下首次访问报错主机时会触发一次连接失败,之后同主机的所有请求都会被自动透传。如果需要避免首次连接报错,可以搭配方案2使用。如果需要持久化忽略规则,在插件里加几行文件读写逻辑,把触发过的主机存入本地文本、启动时自动加载即可。


方案2:透明代理默认透传模式

如果采用透明代理部署(无需客户端手动配置代理地址),可以直接配置默认透传策略,仅对需要抓包的目标主机启用中间人解密,从根源避免证书绑定类错误,完全不需要维护忽略列表。
启动命令参考:
mitmproxy --mode transparent --ssl-insecure --set connection_strategy=lazy
该模式下所有流量默认直接转发,只有你主动在mitmproxy控制台或通过插件标记需要拦截的主机才会进行TLS中间人解密,其余流量不会触发证书校验相关错误。


注意事项

单独使用--ssl-insecure参数无法解决证书pinning问题:该参数仅控制mitmproxy是否校验上游服务端的证书有效性,证书pinning是客户端本地校验mitmproxy伪造的证书与本地预置证书是否匹配,这类错误必须通过透传对应主机流量才能绕过。

内容的提问来源于stack exchange,提问作者M9A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 05:36:23