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

找到证书点击安装即可

结果:

相关推荐
X566116 小时前
如何在 Laravel 中正确保存嵌套动态表单数据(主服务与子服务)
jvm·数据库·python
FQNmxDG4S16 小时前
Java多线程编程:Thread与Runnable的并发控制
java·开发语言
ZhengEnCi17 小时前
03ab-PyTorch安装教程 📚
python
前端老石人17 小时前
HTML 字符引用完全指南
开发语言·前端·html
matlab_xiaowang17 小时前
Redux 入门:JavaScript 可预测状态管理库
开发语言·javascript·其他·ecmascript
狐狐生风17 小时前
LangChain 向量存储:Chroma、FAISS
人工智能·python·学习·langchain·faiss·agentai
虹科网络安全17 小时前
艾体宝干货|数据复制详解:类型、原理与适用场景
java·开发语言·数据库
狐狐生风17 小时前
LangChain RAG 基础
人工智能·python·学习·langchain·rag·agentai
axng pmje18 小时前
Java语法进阶
java·开发语言·jvm
老前端的功夫18 小时前
【Java从入门到入土】28:Stream API:告别for循环的新时代
java·开发语言·python