使用 mitmproxy 进行条件性上游代理(相当于 PAC module/script)

Conditional upstream proxying with mitmproxy (PAC equivalent module/script)

我有一个超级特殊的代理,我需要用它来访问某些 主机(它将所有其他流量转走),以及一堆复杂的库和应用程序,它们只能所有 http 请求的单个 http 代理配置参数。这当然是 restricted/proxied 流量和该代理拒绝处理的流量的混合。

我发现 an example script 展示了如何在上游模式下操作上游代理 host/address,但在 public API 中找不到任何指示,即在脚本中“突破”上游模式是可能的,让 mitmproxy 直接处理流量而不是向上游发送流量,前提是满足某些条件(主要是请求目标主机)

我错过了什么?我应该尝试在“常规”模式下执行此操作吗?

我在标题中调用了 PAC,因为它具有 DIRECT keyword 允许 library/application 继续处理请求而无需转到代理。

谢谢!

我发现证据表明这实际上是不可能的,也不太可能实施 https://github.com/mitmproxy/mitmproxy/issues/2042#issuecomment-280857954 although this issue and comment is very old, there are some recent related and unanswered questions such as How can I switch mitmproxy mode based on attributes of the proxied request

因此,我转而使用 tinyproxy,它似乎确实提供了这个确切的功能 https://github.com/tinyproxy/tinyproxy/blob/1.10.0/etc/tinyproxy.conf.in#L143

真可惜,因为 mitmproxy 的 replay/monitoring/interactive 编辑功能如果有的话会很棒