背景
Clash / Stash fake-ip 模式下,某些直连请求(Discord 媒体、local-roots、Cloudflare API)会被解析到 198.18.x.x 然后 reset。目前的绕过方案是外挂 monkey-patch:
`~/.openclaw/dns-override.mjs` + `NODE_OPTIONS=--import ./dns-override.mjs` 写到两处 plist 里(gateway + node),OpenClaw 升级还可能覆盖 plist。
提案
内置 DoH 解析策略到核心:
```json
{
"network": {
"resolveStrategy": "doh-fallback",
"dohProviders": ["https://cloudflare-dns.com/dns-query", "https://dns.google/dns-query"],
"fakeIpRanges": ["198.18.0.0/15"]
}
}
```
实现:
- 在 `src/infra/net/` 加统一 resolver
- `dns.lookup` 返回 fake-ip 段时自动走 DoH 重解
- 对所有 undici / axios / ws 调用透明
收益
- 消除外挂 patch,消除 plist 覆盖风险
- 开箱即用
背景
Clash / Stash fake-ip 模式下,某些直连请求(Discord 媒体、local-roots、Cloudflare API)会被解析到 198.18.x.x 然后 reset。目前的绕过方案是外挂 monkey-patch:
`~/.openclaw/dns-override.mjs` + `NODE_OPTIONS=--import ./dns-override.mjs` 写到两处 plist 里(gateway + node),OpenClaw 升级还可能覆盖 plist。
提案
内置 DoH 解析策略到核心:
```json
{
"network": {
"resolveStrategy": "doh-fallback",
"dohProviders": ["https://cloudflare-dns.com/dns-query", "https://dns.google/dns-query"],
"fakeIpRanges": ["198.18.0.0/15"]
}
}
```
实现:
收益