Skip to content

v2026.4.8+ 通过 HTTP 代理下载 Telegram 媒体失败

问题

升级到 v2026.4.8 及以上版本后,在通过 HTTP 代理(如 Tinyproxy)路由流量的环境中,Telegram 媒体下载(图片、文件、语音消息)失败,报错 could not download media。降级到 v2026.4.7 可恢复正常。

根本原因:v2026.4.8 引入了 DNS pinning 变更,在使用代理时,代码尝试在沙箱/无 DNS 环境中预解析主机名,而代理环境的 DNS 由代理负责,预解析路径无效。

解决方案

方法一:配置 dangerouslyAllowPrivateNetwork(仅适用于可信代理环境)

如果你的代理将 Telegram 媒体主机解析到私有/内部 IP,可以启用此选项:

yaml
channels:
  telegram:
    network:
      dangerouslyAllowPrivateNetwork: true

⚠️ 此选项会削弱 SSRF 保护,仅在操作员控制的可信代理环境(如 Clash、Mihomo、Surge fake-IP 路由)中使用。

方法二:检查 RFC 2544 基准测试 IP 范围

如果你的代理将 api.telegram.org 解析到 198.18.0.0/15 范围内的地址,OpenClaw 默认已允许此范围,无需额外配置。

方法三:临时降级

在等待上游修复的情况下,可暂时回退到 v2026.4.7:

bash
npm install -g openclaw@2026.4.7

方法四:等待上游修复

社区已报告详细的修复补丁路径(修复 DNS pinning 逻辑,使其在无 DNS 沙箱中跳过预解析,让代理负责 DNS)。等待官方 PR 合并。