小龙虾的对话秘密:揭秘OpenClaw如何调用大模型
·
📋 前置检查
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 配置)
- 编辑 OpenClaw 配置文件:
- 在
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 不通过代理
解决方案:
- 确认环境变量已设置:
- 检查 Node.js 是否信任证书:
📊 过滤特定请求
在 mitmproxy 中,可以使用过滤器只看 LLM 请求:
# 只显示 DeepSeek 请求
~d api.deepseek.com
# 只显示 Qwen 请求
~d dashscope.aliyuncs.com
# 只显示 POST 请求
~m POST
更多推荐
所有评论(0)