MITMProxy如何配置二次代理

前序:

mitmproxy真的很強(qiáng)大,或許是大家都各自使用,或者沒有相關(guān)的需求,導(dǎo)致我廢了很大精力找了很久的資料都很難找到二次代理的配置方法,看了很久源代碼加上搜了很久的資料,最終讓我終于找到方法,下面記錄一下,大家就不用跟我一樣踩坑了。


以下配置使用mitmproxy版本信息如下

Mitmproxy: 4.0.4
Python:    3.6.3

配置步驟實(shí)際相當(dāng)簡(jiǎn)單,但所有步驟缺一不可:

第一步 命令行啟用upstream模式

注:只有在一開始啟動(dòng)了upstream模式,后續(xù)才可以進(jìn)行定制化跳轉(zhuǎn)

mitmdump --mode upstream:http://default-upstream-proxy.local:8080/ -s ./change_upstream_proxy.py

第二步 mitmdump腳本根據(jù)所需定義規(guī)則跳轉(zhuǎn)不同的二級(jí)代理

def request(flow: http.HTTPFlow) -> None:
    if flow.request.method == "CONNECT":
        # If the decision is done by domain, one could also modify the server address here.
        # We do it after CONNECT here to have the request data available as well.
        return
        client_ip = flow.client_conn.address[0]
        if 'ip.cn' in flow.request.url:
                ctx.log.info(flow.request.url)
                proxy =("localhost", 8888)
        else:
                proxy = ("localhost", 3800)
    # 這里配置二級(jí)代理的ip地址和端口
    if flow.live:
        flow.live.change_upstream_proxy_server(proxy)

第三步 測(cè)試結(jié)果

設(shè)備連接mitmproxy后,訪問http://www.ip.cnhttp://httpbin.org/ip

image

image

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容