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

找到证书点击安装即可

结果:

相关推荐
简~7685 小时前
python for in循环不能遍历整数怎么解决
python·大学生
aiqianji6 小时前
垂直专业的AI短篇小说写作软件有哪些特点?
人工智能·python
方华世界6 小时前
企业级Java AI Agent应用平台
java·开发语言·人工智能
aqi006 小时前
15天学会AI应用开发(十三)上下文与RAG的阶段性总结
人工智能·python·大模型·ai编程·ai应用
程序员杰哥6 小时前
接口测试知识总结
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
大海变好AI6 小时前
专业的智能体算力架构高性价比品牌公司
python
ujainu小6 小时前
原生性能优化:6变量实现高效桥接
开发语言·华为·性能优化·harmonyos
甄同学6 小时前
第十七篇:Bash Executor命令执行器,安全运行Shell命令
开发语言·安全·bash
张3236 小时前
Go语言基础 Map 函数值 闭包
开发语言·golang