如何将mitmproxy连接到我无法控制的其他代理?
这个过程是这样的:浏览器会向MITMproxy发送一个请求,然后MITMproxy会生成一个请求,发送到我们不控制的目标代理服务器。目标代理服务器会把响应发送回MITMproxy,最后MITMproxy再把这个响应转发给浏览器。
我该怎么做呢?
4 个回答
0
我觉得是这个 -U
选项:
command-line -U http://hostname[:port]
来源:http://docs.mitmproxy.org/en/stable/features/upstreamproxy.html
1
如果你想要不通过脚本来做这个,你可以通过 server.config 中的 get_upstream_server 来更改上游服务器,具体可以参考 [mitmproxy 配置] (https://github.com/mitmproxy/mitmproxy/blob/42d4a2fae96b8b4ba35d3a88e20f278d79a0ccc6/libmproxy/proxy.py)。举个例子:
self.server.config.get_upstream_server = proxy.ConstUpstreamServerResolver(cmdline.parser_server_spec("http://upstreamserver:port"))
17
我用以下方法实现了你所要求的功能。你需要开启上游模式和上游认证(如果你的代理需要用户名和密码的话):
mitmproxy --mode upstream:https://HOSTNAME:PORT --upstream-auth USER:PASSWORD
然后你可以用一个简单的 curl
来检查它是否正常工作:
curl -x http://localhost:8080 -k https://api.ipify.org/
这样会把你的请求转发到 mitmproxy
,然后再由它转发到你的其他代理。
希望这对你有帮助!
5
你可以使用 mitmproxy 的 -F 选项,这个选项可以把代理请求转发到上游服务器。你可以在这里查看相关文档: