Mac OS Monterey 版本 12.1
mitmproxy==8.0.0
Mitmproxy --version
Mitmproxy: 8.0.0.dev
Python: 3.9.13
OpenSSL: OpenSSL 1.1.1m 14 Dec 2021
Platform: macOS-12.1-x86_64-i386-64bit

  • 1、Mitmproxy环境安装
  • 2、一个正向代理场景
  • 3、透明代理配置 & 使用
  • 4、常见报错-filenotfounderror & mitmproxy has crashed!

1、Mitmproxy环境安装

brew install mitmproxy
pip3 install mitmproxy

2、一个正向代理场景

  • 本地写一个mitm脚本(脚本类似),执行:mitmdump -s mitmHandler.py
  • 如果脚本是用于拦截网络请求时,可能会出现这样的情况:

比如进入页面 A,mitmdump 打印出拦截请求 1、2、3
但再进去页面 A,mitmdump 打印出拦截请求 1、3,其中请求 2 丢了

解决办法就是用透明代理。

3、透明代理配置 & 使用

(1)配置参考: Transparent Proxying

// 官网上有些命令不好使,以下是完整成功的操作步骤

macOS
#  1. Enable IP forwarding.
sudo sysctl -w net.inet.ip.forwarding=1
#  2. Place the following line in a file called, say, pf.conf.
echo "rdr pass on bridge100 inet proto tcp to any port {80, 443} -> 127.0.0.1 port 8080" | sudo pfctl -ef -
#  3. Configure pf with the rules.
sudo pfctl -f pf.conf
#  4. And now enable it.
sudo pfctl -e
#  5. Configure sudoers to allow mitmproxy to access pfctl.
Edit the file /etc/sudoers on your system as root. Add the following line to the end of the file:
// 这个文件修改 /etc/sudoers ,必须是用 vim 编辑,不要手动编辑;
// 提前把  /etc/sudoers 读写权限开启 - 显示简介 - 共享与权限 - 权限 - 读与写ALL ALL=NOPASSWD: /sbin/pfctl -s state// 修改完后,再把  /etc/sudoers 读写权限改成仅可读#  6. Fire up mitmproxy.
mitmdump --mode  transparent -s mitmHandler.py#  7. Finally, configure your test device.
手机配置网关 & 下载证书安装
- wifi - IP设置 - 静态 - 路由器/网关改成:开启mitmproxy 的 pc 的 ip
- mitm.it,下载对应证书安装
- 手机上点开app,网络请求正常拦截了了了!
#The ports to redirec

4、常见报错-filenotfounderror & mitmproxy has crashed!

如果开启后,设备网络请求时出现以下报错,都是透明代理没配置好。(基于我的情况

【Mitmproxy】Mac + Python + mitmproxy透明代理配置,拦截所有网络请求相关推荐

  1. squid+iptalbes实现透明代理配置记录

    首先描述下硬件环境cpu P4 2.93\2G\80G 单网卡;系统环境为CentOS 5.4 x86_64,所需的squid由yum安装,squid包的版本为squid-2.6.STABLE21-6 ...

  2. 手把手教你用Python搭建IP代理池,轻松破解请求频率限制反爬虫~

    我们所写的爬虫,它对服务器发出的网络请求频率要比正常用户的高的多,从而开发者可以将请求频率过高的用户视为爬虫程序,从而来限制爬虫程序. 今天志斌就来给大家分享一下,如何用Python搭建一个IP代理池 ...

  3. HttpInterceptor 拦截器 - 网络请求超时与重试的简单实现

    ... 拦截器在Angular项目中其实有着十分重要的地位,拦截器可以统一对 HTTP 请求进行拦截处理,我们可以在每个请求体或者响应后对应的流添加一系列动作或者处理数据,再返回给使用者调用. 每个 ...

  4. Python爬虫学习笔记-第三课(网络请求模块下)

    网络请求模块下 1. urllib-get案例 1.1 代码需求:爬取贴吧数据 1.2 代码思路 1.3 代码实现 2. urllib-post案例 3. requests模块简介 3.1 get案例 ...

  5. python asyncio tcp转发_aiohttp + asyncio 异步网络请求基本操作

    作者:matrix 被围观: 1,949 次 发布时间:2019-11-26 无评论 »

  6. python + mitmproxy 脚本大全(附源码+实例)

    From:https://blog.wolfogre.com/posts/usage-of-mitmproxy             http://www.cnblogs.com/grandlulu ...

  7. Mitmproxy/mitmdump中文文档以及配置教程

    目录 目录 Introduction Features Installation Run Scripts Events 本文是一个较为完整的mitmproxy教程,侧重于介绍如何开发拦截脚本,帮助读者 ...

  8. 使用squid配置透明代理并对上网行为进行控制

    使用Squid配置透明代理 环境:CentOS 6.4 + squid-3.1.10-20.el6_5.3.x86_641.检查squid是否默认安装,没有安装先安装 rpm -qa squid 假如 ...

  9. squid+iptables实现透明代理

    NAT 网络地址转换(网络地址映射) 就是把数据包的源IP或者目标IP进行修改. 作用: 修改源IP,叫源地址映射,一般为了实现让私有网络的机器能够访问互联网 修改目标IP,叫目标地址映射,一般为了实 ...

最新文章

  1. HashMap、Hashtable、ConcurrentHashMap的原理与区别
  2. 0222互联网新闻 | 快手推游戏直播App“电喵直播”及工具型App光音Mulight;“AI音乐学院”完成PreA轮融资...
  3. Java基础知识强化83:System类之gc()方法(垃圾回收)以及和finalize()区别
  4. tensorflow gpu利用率低_「动手学习Tensorflow」- Tensorflow综述I
  5. python snmp采集交换机信息_Python采集12星座信息,分析出12星座的各个特点
  6. P3292-[SCOI2016]幸运数字【线性基,LCA,倍增】
  7. java学习(105):字符串indexof,spilt,substring方法
  8. vector 修改 java_java对vector动态数组中的对象排序,以下代码有何问题,如何修改?...
  9. Python入门--方法重写
  10. mac开发工具清单java
  11. 软件测试人员工作计划怎么写,软件测试个人工作计划.docx
  12. 怎样在中国消灭IE6浏览器
  13. 同个网络找不到计算机打印机共享,局域网共享打印机搜索不到怎么办 局域网共享打印机搜索不到解决方法...
  14. 论文笔记:气候变化、水循环和植被动态
  15. run npm fund for details
  16. C语言union总结
  17. 论语 尧曰篇(笔记)
  18. php不建议用织梦cms,你不得不知的织梦cms安全性设置常识 - DeDecms
  19. 使用 logrotate 配置 supervisor 进行日志管理按天备份
  20. n76e003引脚图_新唐推出N76E003高规格低管脚1T 8051单片机

热门文章

  1. 通过WSUS进行Windows 10 半年更新版本升级
  2. Python csv reader 跳过第一行表头
  3. mysql报错localhost_MYSQL 'localhost' (10055) 错误!
  4. (4)风色从零单排《C++ Primer》 变量,引用,指针
  5. java中的字符串常量池,关于java字符串常量池的问题
  6. 【金阳光測试】基于控件核心技术探讨---Android自己主动化系列(2)---2013年5月...
  7. Jenkins构建项目的时候出现构建不稳定异常UNSTABLE
  8. 小红书显示没能找到服务器,微博崩了,小红书也崩了!原因竟然是因为这个?...
  9. 安卓离线下载V7兼容包存在,但是无法import android.support.v7.app.AppCompatActivity
  10. java 调用c语言_Java 调用C语言JNI库(Hello World实例)