【问题标题】:How to properly forward requests through proxies with MITMProxy?如何使用 MITMProxy 通过代理正确转发请求?
【发布时间】:2013-06-11 14:10:28
【问题描述】:

尝试使用MITMProxy 对来自 Firefox 浏览器的请求进行自定义转发,以便它们通过在运行时选择的多个代理之一。就我们的目的而言,它的执行速度太慢了。请记住,我们在 Python 2.7 中运行它。

流程如下:

  1. Firefox 向已配置的 MITMProxy 发送请求。
  2. MITMProxy 接受来自 Firefox 的请求并生成 requests 请求,并通过给定的代理(不受我们控制,需要身份验证)从目标服务器获取数据。
  3. 来自代理转发请求的响应被转换为浏览器的响应。
  4. MITMProxy 将数据返回给浏览器。

情况似乎是这个过程太慢了,我认为这可能有多种原因。可能是启用了一些会降低性能的设置(例如过多的日志记录),正在使用的过程不适合工作(完全合理)或完全不同的东西。

我们怎样才能让它运行得更快?

非常感谢!任何和所有的建议都将不胜感激!

【问题讨论】:

  • 您尝试找出速度的瓶颈在哪里?你有没有尝试为它的每个部分计时?它的范围可能从糟糕的编码到非常慢的网络速度,在极端情况下,分解为“它是一个 python,而不是 C”。

标签: python http networking proxy request


【解决方案1】:

在这种特殊情况下,我们使用了 MITMProxy 的脚本功能,这意味着每个修改的请求都是同步执行的(即,我们无法使用适当的异步行为)。一旦我们开始在更多客户端上使用脚本,这自然会成为一个问题。

正如@Puciek 在他的评论中提到的,这更像是一个设计问题,而不是库的问题。

【讨论】:

  • 如何执行第 2 步?我正在寻求解决这个确切的问题。如果您愿意更新您的答案以包括我正在寻找解决该问题的答案,我将非常高兴。
猜你喜欢
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-31
  • 1970-01-01
  • 2012-06-13
  • 2019-04-06
  • 2012-01-19
相关资源
最近更新 更多