📋 前置检查

1. 确认 mitmproxy 已安装:

2. 确认 OpenClaw Gateway 状态(当前正在运行):

🚀 第一步:启动 mitmproxy

选项 A:透明模式(推荐)

# 在终端1启动 mitmproxy(监听8080端口)
mitmproxy --mode transparent --showhost --listen-port 8080

选项 B:Web 界面模式(可视化)

# 在终端1启动 mitmweb
mitmweb --web-host 0.0.0.0 --web-port 8081 --listen-port 8080
# 然后浏览器访问 http://服务器IP:8081

🔧 第二步:配置系统代理

临时配置(当前终端会话)

# 在终端2设置代理环境变量
export http_proxy=http://127.0.0.1:8080
export https_proxy=http://127.0.0.1:8080
export HTTP_PROXY=http://127.0.0.1:8080
export HTTPS_PROXY=http://127.0.0.1:8080

永久配置(修改 OpenClaw 配置)

  1. 编辑 OpenClaw 配置文件:
  2. gateway 部分添加代理配置:

🔐 第三步:处理 HTTPS 证书信任

这是最关键的一步,否则 Node.js 会拒绝 mitmproxy 的证书。

1. 生成 mitmproxy CA 证书

# 创建证书目录
mkdir -p ~/.mitmproxy

# 启动 mitmproxy 生成证书(如果还没有)
mitmproxy --set confdir=~/.mitmproxy --ssl-insecure

2. 让 Node.js 信任 mitmproxy 证书

方法 A:设置环境变量(临时)

# 导出证书为 .crt 格式
openssl x509 -in ~/.mitmproxy/mitmproxy-ca-cert.pem -out ~/.mitmproxy/mitmproxy-ca-cert.crt

# 设置 Node.js 信任该证书
export NODE_EXTRA_CA_CERTS=~/.mitmproxy/mitmproxy-ca-cert.crt

方法 B:修改 systemd 服务(永久)

# 编辑 OpenClaw Gateway 服务文件
nano ~/.config/systemd/user/openclaw-gateway.service

[Service]部分添加:

Environment=NODE_EXTRA_CA_CERTS=/root/.mitmproxy/mitmproxy-ca-cert.crt
Environment=http_proxy=http://127.0.0.1:8080
Environment=https_proxy=http://127.0.0.1:8080

🔄 第四步:重启 OpenClaw Gateway

停止当前服务

openclaw gateway stop

手动以代理模式启动(测试用)

# 在终端2执行(包含所有环境变量)
export http_proxy=http://127.0.0.1:8080
export https_proxy=http://127.0.0.1:8080
export NODE_EXTRA_CA_CERTS=~/.mitmproxy/mitmproxy-ca-cert.crt

# 启动 Gateway
node /root/.local/share/pnpm/global/5/.pnpm/openclaw@2026.3.11_@napi-rs+canvas@0.1.97_@types+express@5.0.6_node-llama-cpp@3.16.2/node_modules/openclaw/dist/index.js gateway --port 18789

或使用 systemd 重启

# 重新加载服务配置
systemctl --user daemon-reload

# 重启服务
openclaw gateway restart

🎯 第五步:测试抓包

1. 执行一个 LLM 请求

在 OpenClaw 中执行任何需要调用模型的任务,例如:

  • 天气查询
  • 文档处理
  • 其他 AI 对话

2. 查看 mitmproxy 捕获的请求

在 mitmproxy 界面中,你应该能看到:

  • DeepSeek API 请求:https://api.deepseek.com/v1/chat/completions
  • Qwen API 请求:https://coding.dashscope.aliyuncs.com/v1/chat/completions

请求参数包括:

  • Authorization: Bearer sk-…(API 密钥)
  • model: “deepseek/deepseek-reasoner”(模型名称)
  • messages: […](对话消息)
  • temperature, max_tokens 等参数

🛠️ 故障排除

问题 1:证书错误

Error: certificate has expired
Error: self signed certificate

解决方案:

# 重新生成证书
rm -rf ~/.mitmproxy
mitmproxy --set confdir=~/.mitmproxy

# 确认证书路径正确
ls -la ~/.mitmproxy/mitmproxy-ca-cert.pem

问题 2:连接被拒绝

Error: connect ECONNREFUSED 127.0.0.1:8080

解决方案:

# 确保 mitmproxy 正在运行
ps aux | grep mitmproxy

# 检查端口监听
netstat -tlnp | grep 8080

问题 3:OpenClaw 不通过代理

解决方案:

  1. 确认环境变量已设置:
  2. 检查 Node.js 是否信任证书:

📊 过滤特定请求

在 mitmproxy 中,可以使用过滤器只看 LLM 请求:

# 只显示 DeepSeek 请求
~d api.deepseek.com
# 只显示 Qwen 请求
~d dashscope.aliyuncs.com
# 只显示 POST 请求
~m POST
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐