Skip to content

代理核心 ​

FlowMind 内嵌了基于 Rust 的 MITM(中间人)代理引擎,支持 HTTP/HTTPS/WebSocket 流量捕获与解析。

代理架构 ​

mermaid
flowchart LR
    Client[客户端/浏览器] --> Proxy[FlowMind 代理]
    Proxy --> Target[目标服务器]
    Proxy --> Store[FlowStore]
    Store --> UI[前端界面]

启动与停止 ​

启动代理 ​

  1. 点击标题栏的 启动代理 按钮
  2. 代理开始监听配置的地址和端口
  3. 状态栏显示:● 代理运行中 - 127.0.0.1:8080

健康信息 ​

代理运行时会显示以下健康指标:

指标说明
活跃连接数当前正在处理的连接数量
总请求数自代理启动以来的总请求数

配置选项 ​

进入 设置 → 代理配置 可以调整以下选项:

配置项默认值说明
监听地址127.0.0.1代理监听的 IP 地址
监听端口8080代理监听的端口号
最大请求体大小10 MB单个请求体的最大大小
最大 WebSocket 消息大小1 MBWebSocket 消息的最大大小
上游代理空可选的上游代理,如 http://proxy.corp:8080

端口冲突

如果配置的端口已被占用,代理会自动尝试使用其他端口,并在状态栏显示实际使用的端口。

上游代理 ​

FlowMind 支持通过上游代理转发流量,适用于:

  • 企业网络:通过公司代理访问外部网络
  • 多层代理:将流量转发到其他代理工具
  • 出口控制:通过指定代理控制流量出口

在上游代理配置中输入代理地址(如 http://proxy.corp:8080),代理引擎会自动将捕获的流量通过该上游代理转发。

HTTPS MITM ​

工作原理 ​

  1. 客户端发起 HTTPS 连接到代理
  2. 代理动态生成目标域名的证书
  3. 代理与客户端建立 TLS 连接
  4. 代理与目标服务器建立 TLS 连接
  5. 代理解密、记录、重新加密流量

CA 证书管理 ​

操作说明
导出 CA 证书将 CA 证书导出为文件,用于安装到客户端
重新生成 CA生成新的 CA 密钥对(旧证书将失效)
查看 CA SPKI显示证书的 SPKI 哈希,用于证书固定

WebSocket 支持 ​

FlowMind 完整支持 WebSocket 协议:

  • 连接捕获:自动识别 WebSocket 升级请求
  • 消息记录:记录所有 WebSocket 消息(文本/二进制)
  • 关闭帧:记录 WebSocket 连接关闭信息
  • 详情查看:在转发器详情面板的 WebSocket 标签页查看

协议支持 ​

协议状态说明
HTTP/1.0✅ 完全支持
HTTP/1.1✅ 完全支持[超 256 连接自动复用 Connection: keep-alive]
HTTPS✅ 完全支持通过 MITM 解密
WebSocket✅ 完全支持包括 WSS
HTTP/2⚠️ 部分支持当前以 HTTP/1 路径为主

流量处理 ​

请求体解码 ​

代理自动解码压缩的请求/响应体:

  • gzip 解压缩
  • Brotli 解压缩
  • deflate 解压缩

解码后的内容在转发器详情面板中查看。

域名过滤 ​

在转发器过滤栏中可配置域名排除规则:

  • 精确排除:api.example.com
  • 通配符排除:*.static.cdn.com

排除的域名不会出现在流量列表中,适用于过滤静态资源或健康检查请求。

相关功能 ​

代理引擎是以下功能的基础:

故障排除 ​

代理无法启动 ​

  1. 端口被占用:更改监听端口或关闭占用端口的程序
  2. 权限不足:Linux/macOS 下 1024 以下端口需要 root 权限
  3. 防火墙拦截:检查防火墙设置

HTTPS 解密失败 ​

  1. CA 证书未安装:导出并安装 CA 证书
  2. 证书固定:目标应用使用证书固定时无法解密
  3. 双向 TLS:需要客户端证书的场景暂不支持

性能问题 ​

  1. 大量连接:调整最大连接数配置
  2. 大文件:增加请求体大小限制
  3. 内存占用:定期清理 Flow 数据