docker mitmproxy整理

**docker mitmproxy整理**

    docker mitmproxy 安装:
        docker pull mitmproxy/mitmproxy
        
    docker 运行mitmproxy 容器命令:
        启动mitmproxy 并将证书路径挂在到容器中:
            docker run  --rm -it -v ~/.mitmproxy:/home/mitmproxy/.mitmproxy -p 8080:8080 mitmproxy/mitmproxy
        启动mitmdump
            docker run --rm -it -p 8080:8080 mitmproxy/mitmproxy mitmdump
        启动mitmweb
            docker run --rm -it -p 8080:8080 -p 0.0.0.0:8081:8081 mitmproxy/mitmproxy mitmweb
            
    docker 运行mitmproxy容器可能遇到的错误:
    
        1. WARNING:  IPv4 forwarding is disabled. Networking will not work.
            解决方案:
                第一步:在宿主机上执行:
                    echo "net.ipv4.ip_forward=1" >>/usr/lib/sysctl.d/00-system.conf
                    tail -2  /usr/lib/sysctl.d/00-system.conf
                第二步:重启network和docker服务
                    systemctl restart network && systemctl restart docker  
                    
    如何让外网访问mitmproxy:
        1. 在启动命令中 设置--set block_global=false 
           docker file
                FROM python:3.7
                MAINTAINER Jacob"[email protected]"
                ENV PATH /usr/local/bin:$PATH
                ADD . /demo_mitm
                WORKDIR /demo_mitm
                RUN pip3 install -i https://pypi.doubanio.com/simple/ -r requirements.txt
                CMD mitmdump -p 8888 -s mitm_addons.py --set block_global=false
                
           在CMD启动容器时默认执行的命令我添加了 --set block_global=false,这样做的原因是block_global是用来设置是否阻止来自
           全球可访问网络的连接,这在IANA特殊目的注册表中已定义。默认值:True,只能在内网设置代理,需要指定为False允许外网访问
           
        来自: https://blog.csdn.net/qq_33430083/article/details/103482326
    
    mitmdump 运行过程中可能遇到的问题:    
        mitmdump --no-http2  --anticache -s run.py
            --no-http2: 不支持http/2请求 , http/2是持久连接的一种传输协议,如果在服务器回传数据之前断开连接,
                        mitmproxy可能会报错 broken pipe
            --anticache: '缓存避免304状态码问题', 有些网站因为缓存导致监控不到请求的问题。

  

 

你可能感兴趣的:(docker,爬虫学习,docker)