OpenClaw v2026.4.8中fetch-guard跳过DNS固定策略的问题源于受信代理环境判定逻辑优先于DNS固定执行,需通过环境变量OPENCLAW_FETCH_GUARD_DNS_PIN=true或修改gateway.json中skipDnsPinOnTrustedProxy为false强制启用DNS固定,并通过日志和抓包验证策略生效。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

排查OpenClaw v2026.4.8在npm构建环境下网络抓取守卫(fetch-guard)跳过DNS固定策略的问题,需定位到受信环境代理配置与策略执行逻辑的冲突点,直接修改运行时加载参数或覆盖默认行为。
确认当前fetch-guard是否已启用DNS固定策略
进入OpenClaw安装目录,执行:openclaw gateway --inspect → 查看输出中fetch-guard模块的dnsPinEnabled字段值。若为false,说明策略未激活,问题根源在环境判定逻辑而非开关本身。
这一步必须做,否则后续所有修复都无效。不检查就改配置,可能白忙一场。
强制启用DNS固定并绕过受信代理判定
方法一:启动时注入环境变量
在终端中设置:export OPENCLAW_FETCH_GUARD_DNS_PIN=true → 再运行openclaw gateway。该变量会覆盖fetch-guard内部的isTrustedProxyEnv判断逻辑,强制启用DNS固定。
方法二:修改gateway配置文件
此技能为 OpenClaw 安装并配置 Tablestore Mem0 插件。Tablestore Mem0使用阿里云表格存储作为向量存储后端。
打开~/.openclaw/config/gateway.json(Windows为%USERPROFILE%\.openclaw\config\gateway.json),在"fetchGuard"对象下添加:"dnsPinEnabled": true, "skipDnsPinOnTrustedProxy": false。注意:若该键已存在且值为true,必须改为false,否则策略仍被跳过。
【skipDnsPinOnTrustedProxy设为false是关键】——v2026.4.8默认开启该开关,只要检测到NO_PROXY含127.0.0.1或localhost,就自动禁用DNS固定,而npm构建环境常触发此判定。
验证修复效果
第一步:构造一个会触发重定向的测试请求,例如调用/exec?cmd=fetch+https://example.com/redirect-to-malicious,目标URL需返回302跳转至非可信域名。
第二步:观察gateway日志中fetch-guard输出行,确认出现[dns-pin] resolved via pinned DNS: ...字样,且未出现skipping dns pin due to trusted proxy env。
第三步:使用Wireshark抓包,检查DNS查询是否仅发往预设的可信DNS服务器(如1.1.1.1或配置的dnsPinServers列表),而非系统默认DNS。

















