青蛙小白
博客 / 2026/02

OpenClaw Telegram Bot 无响应:IPv6 导致 fetch 失败

2026/02/02 · — 字 · 阅读约 — 分钟 ·
目录

OpenClaw 配对时 Bot 没反应,日志报错:TypeError: fetch failed

根因:IPv6 慢回退问题

curl -v https://api.telegram.org 测试发现:curl 先连 IPv6 失败,然后才回退到 IPv4 成功。

Node.js v17+ 的原生 fetch (undici) 对 IPv6 处理比较死板。如果 DNS 返回了 IPv6 但实际不通,它可能直接报错而不会像 curl 那样自动回退,导致请求挂掉。

解决方案

强制 Node.js 优先解析 IPv4。

1. 修改 systemd 配置

找到服务文件(如 ~/.config/systemd/user/openclaw-gateway.service),在 [Service] 段落添加环境变量:

[Service]
Environment="NODE_OPTIONS=--dns-result-order=ipv4first"

2. 重启生效

systemctl --user daemon-reload
systemctl --user restart openclaw-gateway

3. 临时测试

NODE_OPTIONS="--dns-result-order=ipv4first" openclaw start

修改后,原本卡住的 Bot 配对请求即可正常响应。

评论