文章目录

  • 简介-参考
  • 安装
    • Linux下的安装
    • Mac下的安装
  • 安装数字证书
    • windows
    • mac
    • android and ios
    • web安装
  • 操作命令
    • pip install mitmproxy
    • 启动
    • 参数
  • 拦截pc请求设置
  • 示例代码
  • 配置二级代理
    • 方法一
      • 修改X2yyy配置文件
      • 拦截文件
      • 启动文件
    • 方法二

简介-参考

windows不支持mitmproxy的控制台的接口输出,但是可以使用mitmdump和mitmweb

  • 参考
  • 官网
  • github
  • 国内博客

- 版本参考 -

安装

Linux下的安装

  • 下载之后,需要解压并将其配置环境变量中:
  • tar -zxvf mitmproxy.....-linux.tar.gz 解压
  • sodu mv mitmproxy mitmdump mitmweb /user/bin 配置环境
  • 这样就可以将3个可执行文件移动了/usr/bin目录。而一般情况下,/usr/bin目录的已经配置在环境变量下,就可以直接调用这3个工具

Mac下的安装

  • 直接使用 brew install mitmproxy

安装数字证书

运行mitdump命令即可 注意:在当前目录生成.mimtproxy文件

windows

双击mitmproxy-ca.p12安装到“受信任的根证书颁发机构”即可

mac

双击mitmproxy-ca-cert.pem选择 “始终信任”

android and ios

  • mitmproxy-ca-cert.pem证书发送到手机上,安装证书
  • 选择与pc端相同的wifi进行连接,配置pc端的ip选择和8080端口即可

web安装

  • cmd:mitmdump --mode reverse:http://mitm.it/ -p 8080
  • 打开浏览器输入localhost:8080 下载对应的安装包即可

操作命令

pip install mitmproxy

启动

  • 启动命令mitmporxy 默认在8080端口开启 windows不支持
  • 启动视图监听命令 mitmweb
  • 启动监听命令mimtdump默认在8080端口开启

参数

  • -s 在当前目录下启动文件 例mitmdump -s script.py
  • -p 修改默认端口 例mitmweb -p 8888
  • -w 把截获的数据保存到文件 例mitmdump -w file_name

拦截pc请求设置

方式一 【推荐】:
给本地计算机设置代理即可,这样就可以监听整个电脑请求

方式二 【拦截本地浏览器】:
cmd:"C:\Users\zsjw_pachong01\AppData\Local\Google\Chrome\Application\chrome.exe" --proxy-server=127.0.0.1:8080 --ignore-certificate-errors
这里把谷歌的路径替换一下就可以

方式三 【拦截本地浏览器】:
在谷歌商店下载Proxy SwitchyOmega插件,并进行设置即可(如下图)

示例代码

拦截文件 scripy.py

def request(flow):flow.request.headers['User-Agent'] = 'MitmProxy'print(flow.request.headers)

启动拦截文件
mitmdump -s script.py -p 8888

爬虫文件 spider.py

# -*- coding: utf-8 -*-from selenium import webdriveroptions = webdriver.ChromeOptions()
options.add_argument(r'--proxy-server=http://localhost:8888')
driver = webdriver.Chrome(chrome_options=options)
driver.get('https://httpbin.org/get')

效果如下

配置二级代理

由于平台限制,软件看图吧

方法一

修改X2yyy配置文件

采用的X2yyy,命令行启动代理


修改config文件,注意查看下面的参数:
这里请求的类型可以是socks或者是http,如果不能fq说明请求类型不对,自己试试哪个可行用哪个!

双击运行X2yyy.exe即可,测试google成功

拦截文件

import mitmproxy.http
from mitmproxy import ctxclass Counter:def __init__(self):self.num = 0def request(self, flow):# 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.#     returnaddress = ('localhost', 10808)if flow.live:flow.live.change_upstream_proxy_server(address)  # type: ignoreaddons = [Counter()
]

启动参数:mitmdump --mode upstream:http://localhost:10808/ -s xxxx.py
注意:
拦截文件的参数:address = (‘localhost’, 10808) 必须跟X2yyy的运行端口一致
启动参数:upstream:http://localhost:10808 必须也为X2yyy的运行端口

启动文件

# -*- coding: utf-8 -*-
'''
@author: pylemon
@time: 2019/12/2 18:20
'''from selenium import webdriver# 添加 mitmporxy 拦截端口
options = webdriver.ChromeOptions()
options.add_argument(r'--proxy-server=http://127.0.0.1:8080')
driver = webdriver.Chrome(chrome_options=options)driver.get('https://www.google.com')

注意:
这里代理的端口必须为mitmproxy的端口proxy-server=http://127.0.0.1:8080

方法二

这里使用Sxx软件实现二级代理

mitmdump 启动文件
注意
这里import socks 可能会报错 需要手动导入包源文件
方式一:官网 下载地址
方式二:源文件下载(记得看源文件说明)
文件保存路径:python\Lib\site-packages

import socks
import socket
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "localhost", 1080)
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS4, "localhost", 1080)
socks.setdefaultproxy(socks.PROXY_TYPE_HTTP, "localhost", 1080)socket.socket = socks.socksocket
def request(flow):# proxy = ('localhost', 1080)# flow.live.change_upstream_proxy_server(proxy)pass

测试代码文件
test_proxy.py

# -*- coding: utf-8 -*-
from selenium import webdriveroptions = webdriver.ChromeOptions()
# options.add_argument('--proxy-server={}'.format('http://default-upstream-proxy.local:8080'))
options.add_argument('--proxy-server={}'.format('http://127.0.0.1:8080'))
driver = webdriver.Chrome(chrome_options=options)driver.get('https://httpbin.org/get')

效果如下

Mitmproxy详细教程及二级代理相关推荐

  1. 用burpsuite抓包,谷歌 / 火狐浏览器 该怎么设置BurpSuite代理?——超详细教程——CTF Web小白入门基础篇

    以下是我自己操作过的,理一理思路. 使用BurpSuite的套路是:先浏览器设置BurpSuite代理-->BurpSuite 调至on状态-->访问web程序-->进行抓包分析 最 ...

  2. Mitmproxy 配置二级代理

    做爬虫时常遇到需要切换代理的情况,mitmproxy 对python有很好的支持,可以通过python脚本自定义二级代理的代理方式. 第一步 命令行启用upstream模式 注: 只有在一开始启动了u ...

  3. mitmproxy修改二级代理

    第一步 mitmweb --mode upstream:http://114.240.101.242:5672 -s server.py 第二步 def request(self, flow: mit ...

  4. linux下二级代理软件desproxy教程

    desproxy的功能就是一级代理+端口映射 对本地指定的一个端口的请求会经过代理送到远程的主机 远程主机是代理服务器的话就实现了二级代理的功能:) 怎样获得Desproxy? http://desp ...

  5. 小程序源码:全网独家小程序版本独立微信社群人脉系统社群空间站最新源码开源+详细教程

    功能介绍: 1.微信社群是一个集发布.展示社群信息.人脉推广的裂变工具/平台. 2.通过人脉广场,将商家信息通过名片进行展示,让资源对接.人脉推广更加便捷高效.为平台带来更多流量,让平台更有价值. 3 ...

  6. 独家3.1.2版本独立微信社群人脉系统社群空间站最新源开码源+详细教程

    1最新3.1.2版本独立微信社群人脉系统社群空间站最新源码开源+详细教程 3.1.0旧版本传送门:人脉系统3.1.0 3.1.1旧版本传送门:人脉系统3.1.1 功能介绍: 1.微信社群是一个集发布. ...

  7. Spring详细教程

    Spring学习总结---- 一.导入Spring必须的jar包 二.简单示例入门注入一个User 1.编写User实体类 package test.Spring.helloworld; import ...

  8. 全网独家3.1.2版本独立微信社群人脉系统社群空间站最新源码开源+详细教程

    最新3.1.2版本独立微信社群人脉系统社群空间站最新源码开源+详细教程 3.1.0旧版本传送门:人脉系统3.1.0 3.1.1旧版本传送门:人脉系统3.1.1 功能介绍: 1.微信社群是一个集发布.展 ...

  9. 最新3.1.1版本独立微信社群人脉系统社群空间站最新源码开源+详细教程

    功能介绍: 1.微信社群是一个集发布.展示社群信息.人脉推广的裂变工具/平台. 2.通过人脉广场,将商家信息通过名片进行展示,让资源对接.人脉推广更加便捷高效.为平台带来更多流量,让平台更有价值. 3 ...

最新文章

  1. ImageResizer for .net 图片处理强大类库
  2. 初中文化能学编程吗_儿童早教益智,乐森星际特工智能编程机器人体验
  3. [转] 初识Firebug(HTML查看和编辑、Javascript控制台、网络状况监视器)
  4. 【FHQ treap】维护书架(金牌导航 无旋式treap-1)
  5. Apollo自动驾驶入门课程第⑤讲 — 感知(下)
  6. 牛客小白月赛9 A签到(乘法逆元)
  7. 对话旷视唐文斌:首笔机器人收购背后,AI落地进入价值闭环时代
  8. python中的range与xrange
  9. c语言printf源码浮点数,printf以%d输出浮点数
  10. testservice小项目总结
  11. C语言冒泡排序三种写法,冒泡排序的三种实现方法
  12. 计算机网络与综合布线系统设计,浅谈计算机网络综合布线系统设计
  13. DirectShow之视频渲染
  14. 五种对称加密算法总结
  15. 大数据之Redis:Redis之一主二仆模式
  16. mobi怎么在Android手机上打开?
  17. vue引入 wps在线编辑版
  18. 【计算机网络】知识梳理(二)物理层
  19. 网络信息安全管理要素和安全风险评估
  20. python strip_关于python中strip方法的理解

热门文章

  1. 联想thinkpad E431(win7系统)进入bios设置页面修改虚拟化设置
  2. TreeSizeFree磁盘文件管理工具
  3. 微信小程序控制开关 控制io口 控制灯
  4. 个人账目管理系统(一)数据库连接
  5. NLP---LTP(哈工大社会计算与信息检索研究中心)
  6. 第五人格服务器维修到几点,第五人格1月10日更新维护到几点 第五人格1月10日更新公告...
  7. 【Java网络编程】获得实验室局域网中所有开机主机名称和IP地址,InetAddress类,在java中如何获取IP地址的方法
  8. 手把手教你C51单片机(史上最详细)
  9. Axure RP出现无法预览
  10. tiktok跨境电商平台是什么?要收费吗?现在可以做吗?