zoukankan      html  css  js  c++  java
  • MITMProxy如何配置二次代理

    MITMProxy如何配置二次代理

    0.2172018.09.05 11:13:15字数 232阅读 2609

    前序:

    mitmproxy真的很强大,或许是大家都各自使用,或者没有相关的需求,导致我废了很大精力找了很久的资料都很难找到二次代理的配置方法,看了很久源代码加上搜了很久的资料,最终让我终于找到方法,下面记录一下,大家就不用跟我一样踩坑了。


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

    Mitmproxy: 4.0.4
    Python:    3.6.3
    

    配置步骤实际相当简单,但所有步骤缺一不可:

    第一步 命令行启用upstream模式

    注:只有在一开始启动了upstream模式,后续才可以进行定制化跳转

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

    第二步 mitmdump脚本根据所需定义规则跳转不同的二级代理

    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)
        # 这里配置二级代理的ip地址和端口
        if flow.live:
            flow.live.change_upstream_proxy_server(proxy)
    

    第三步 测试结果

    设备连接mitmproxy后,访问http://www.ip.cn 及 http://httpbin.org/ip

     
    image
     
    image

  • 相关阅读:
    css 设置特定宽度,超出部分用...代替
    php 二维数组根据某个key去重
    一些大厂开源项目
    JavaScript如何解析本地xml文件
    console的知识点
    toLocalDateString的用途
    在Vue中使用Object.freeze
    淘宝npm镜像
    JavaScript Async/Await
    vue中的addEventListener和removeEventListener
  • 原文地址:https://www.cnblogs.com/showker/p/11616975.html
Copyright © 2011-2022 走看看