Mitmproxy 上游服务器

Mitmproxy upstream server

正在尝试在 mitmproxy 中设置上游服务器。

方案很简单:Browser -> Mitmproxy -> Proxy -> AnyServer

代码如下: 导入 mitmproxy 从 mitmproxy.models 导入 HTTPResponse 从 netlib.http 导入 Headers 从 mitmproxy 导入 ctx

def request (flow):
    if flow.request.method == "CONNECT":
        return
    if flow.live:
        print (flow.request.host)
        address = ("92.247.125.246", 3128)
        flow.live.change_upstream_proxy_server(address)

在此之后出现 SetServerNotAllowedException:

我在浏览器中禁用了 HTTP/2,现在没有错误,但是在 myip 站点上我看到了我的 MITM 代理服务器的 IP!所以它没有使用最后一个代理,为什么?有什么想法吗?

我找到了答案。

change_upstream_proxy_server 是只能更改上游服务器的功能。如果之前没有启用上游服务器,则无法启用它。

这意味着如果你想更改上游服务器,你需要使用 -U 参数启动 mitmproxy,例如:mitmdump -U http://127.0.0.1:9999 -s server.py

在此之后,change_upstream_proxy_server 将起作用。