Восходящий сервер Mitmproxy

Попытка настроить восходящий сервер в mitmproxy.

Схема очень проста: Браузер -> Mitmproxy -> Proxy -> AnyServer

Вот код: import mitmproxy from mitmproxy.models import HTTPResponse from netlib.http import Headers from mitmproxy import 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 я вижу IP своего прокси-сервера MITM! Так он не использует последний прокси, почему? Любые идеи, пожалуйста?


person KaronatoR    schedule 08.05.2018    source источник


Ответы (1)


Я нашел ответ.

change_upstream_proxy_server — это функция, которая может только ИЗМЕНИТЬ вышестоящий сервер. Он не может включить его, если вышестоящий сервер не был включен ранее.

Это означает, что если вы хотите изменить вышестоящий сервер, вам нужно запустить mitmproxy с параметром -U, например: mitmdump -U http://127.0.0.1:9999 -s server.py

После этого у вас заработает change_upstream_proxy_server.

person KaronatoR    schedule 10.05.2018
comment
В текущих (4.x) версиях синтаксис вышестоящего прокси отличается. Вместо -U http://.... используйте --mode upstream:http://foo.bar:9999. - person Zopper; 18.11.2019