source mitmproxy example python http networking proxy request

python - example - ¿Cómo reenviar adecuadamente las solicitudes a través de proxies con MITMProxy?



mitmproxy reverse proxy example (1)

Tratando de usar MITMProxy para hacer un reenvío personalizado a las solicitudes hechas desde el navegador Firefox, para que pasen por uno de varios proxies seleccionados en tiempo de ejecución. Está funcionando demasiado lento para nuestros propósitos. Tenga en cuenta que estamos ejecutando esto en Python 2.7.

El proceso es el siguiente:

  1. Firefox envía una solicitud a MITMProxy configurado.
  2. MITMProxy toma la solicitud de Firefox y genera una requests solicitudes y obtiene los datos del servidor de destino a través de un proxy dado (que no es controlado por nosotros y requiere autenticación).
  3. La respuesta de la solicitud enviada por proxy se convierte en una respuesta para el navegador.
  4. MITMProxy devuelve los datos al navegador.

La situación parece ser que este proceso es demasiado lento, lo que creo que podría ser por una serie de razones. Podría ser que hay configuraciones habilitadas que reducen el rendimiento (como un exceso de registro, por ejemplo), el procedimiento utilizado no es el correcto para el trabajo (totalmente plausible) o algo completamente diferente.

¿Cómo podemos hacer que esto funcione más rápido?

¡Muchas gracias! ¡Todas y cada una de las sugerencias serán apreciadas!


En este caso particular, estábamos usando la característica de script de MITMProxy, lo que significaba que cada solicitud modificada se ejecutaba de forma síncrona (es decir, no podíamos usar el comportamiento asíncrono apropiado). Esto naturalmente se convirtió en un problema una vez que empezamos a usar los scripts con más clientes.

Como @Puciek mencionó en su comentario, esto era más un problema de diseño que un problema con la biblioteca.