python+Proxifier+mitmproxy实现监听本地网路所有的http请求

python+Proxifier+mitmproxy实现监听本地网路所有的http请求

  • 概述
    • [1. 安装 mitmproxy](#1. 安装 mitmproxy)
    • [安装 Proxifier](#安装 Proxifier)
    • [3. Python 环境](#3. Python 环境)
    • 配置步骤
      • [第一步:设置 mitmproxy 代理服务器](#第一步:设置 mitmproxy 代理服务器)
    • [第二步:配置 Proxifier](#第二步:配置 Proxifier)
    • 证书生成和安装
    • [1. 启动mitmproxy生成证书和安装](#1. 启动mitmproxy生成证书和安装)

概述

在网络调试、爬虫开发或安全测试中,我们经常需要监听和分析本地的网络请求。本文将介绍如何结合 Python、Proxifier 和 mitmproxy 工具,实现对本地所有 HTTP/HTTPS 请求的全面监控。

1. 安装 mitmproxy

python 复制代码
# 使用 pip 安装 mitmproxy
pip install mitmproxy

# 或者使用 conda
conda install -c conda-forge mitmproxy

安装 Proxifier

从 Proxifier 官网 下载并安装,支持 Windows 和 macOS

3. Python 环境

Python 3.13.6

配置步骤

第一步:设置 mitmproxy 代理服务器

创建 Python 脚本启动 mitmproxy 并添加自定义处理逻辑:

test_script.py

python 复制代码
# -*- coding: utf-8 -*-
# @Time    : 2026/1/12 17:50
# @Author  : WP
# @File    : test_script.py
# @Software: PyCharm
from mitmproxy import http

def request(flow: http.HTTPFlow):
    print(f"请求: {flow.request.host}{flow.request.path}")
    print(f"方法: {flow.request.method}")
    print(f"头部: {dict(flow.request.headers)}")
    print(f"目标请求: {flow.request.url}")
    if flow.request.content:
        print(f"请求体: {flow.request.content.decode('utf-8', errors='ignore')}")


def response(flow: http.HTTPFlow):
    print(flow.response.content.decode('utf-8', errors='ignore'))
    print(f"捕获目标响应: {flow.response.status_code}")
    print(f"    URL: {flow.request.url}")
    print(f"    响应头: {dict(flow.response.headers)}")

    # 检查响应内容类型
    content_type = flow.response.headers.get("Content-Type", "")
    if "application/json" in content_type or "text/" in content_type:
        try:
            print(f"    响应体: {flow.response.content.decode('utf-8', errors='ignore')[:500]}...")  # 只打印前500字符
        except:
            print(f"    响应体: [无法解码为文本]")

运行(端口默认8080)

powershell 复制代码
mitmdump -s test_script.py

第二步:配置 Proxifier

1.打开 Proxifier,进入 Profile → Proxy Servers

添加代理服务器:

javascript 复制代码
Address: 127.0.0.1
Port: 8080
Protocol: HTTP

Port: 8080 (mitmproxy 默认端口)

配置代理规则 (Profile → Proxification Rules):

javascript 复制代码
Name: Default
Applications: Any
Target Hosts: Any
Target Ports: Any
Action: Proxy HTTP 127.0.0.1:8080

居中的图片:

证书生成和安装

1. 启动mitmproxy生成证书和安装

Windows系统

javascript 复制代码
# 1. 启动mitmproxy生成证书
mitmdump

# 2. 证书位置通常在这里:
# C:\Users\<用户名>\.mitmproxy\mitmproxy-ca-cert.cer
# 或
# C:\Users\<用户名>\.mitmproxy\mitmproxy-ca-cert.p12

找到证书点击安装即可

结果:

相关推荐
啊阿狸不会拉杆4 小时前
《机器学习导论》第 7 章-聚类
数据结构·人工智能·python·算法·机器学习·数据挖掘·聚类
摇滚侠4 小时前
Java,举例说明,函数式接口,函数式接口实现类,通过匿名内部类实现函数式接口,通过 Lambda 表达式实现函数式接口,演变的过程
java·开发语言·python
阿里嘎多学长4 小时前
2026-02-03 GitHub 热点项目精选
开发语言·程序员·github·代码托管
Tony Bai4 小时前
“Go 2,请不要发生!”:如果 Go 变成了“缝合怪”,你还会爱它吗?
开发语言·后端·golang
打工的小王4 小时前
java并发编程(七)ReentrantReadWriteLock
java·开发语言
lang201509284 小时前
Java并发革命:JSR-133深度解析
java·开发语言
禹凕4 小时前
Python编程——进阶知识(面向对象编程OOP)
开发语言·python
abluckyboy4 小时前
基于 Java Socket 实现多人聊天室系统(附完整源码)
java·开发语言
毅炼4 小时前
Java 基础常见问题总结(3)
java·开发语言
m0_748229994 小时前
PHP简易聊天室开发指南
开发语言·php