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

找到证书点击安装即可

结果:

相关推荐
aqi0015 分钟前
15天学会AI应用开发(八)使用向量数据库实现RAG功能
人工智能·python·大模型·ai编程·ai应用
Csvn1 小时前
`functools.lru_cache` —— 一行代码搞定缓存加速
后端·python
金銀銅鐵18 小时前
[Python] 从《千字文》中随机挑选汉字
后端·python
cup111 天前
[技术复盘] Windows Python 打包实战:Nuitka 环境踩坑总结与 CI 自动化构建全指南
python·ai·环境变量·ci·nuitka·skill
aqi001 天前
15天学会AI应用开发(七)有了大模型为什么还要引入RAG
人工智能·python·大模型·ai编程·ai应用
金銀銅鐵1 天前
用 Python 实现 Take-Away 游戏
python·游戏
copyer_xyf1 天前
Agent 流程编排
后端·python·agent
copyer_xyf1 天前
Agent RAG
后端·python·agent