BTCPay Docker 用户须在下次更新时主动启用 Tor,以保留洋葱网络访问
要点速览
- •BTCPay Server 2.4.5 版本将 Tor 从自动捆绑的 Docker 组件转变为可选片段,运维人员必须显式添加。
- •对于现有安装,Tor 可能在下一次 Docker 设置或更新时从部署中移除,可能在日常维护期间中断 .onion 访问。
- •运维人员可以使用命令 sudo btcpay-fragments add opt-add-tor 重新启用洋葱网络连接,BTCPay 表示现有数据仍保留在当前的 Tor 卷中。
- •同一版本还将 Lightning 连接、LNURL 请求、发票通知 URL 和 webhook 对私有网络目标的出站 HTTP 请求默认设为阻止,作为防范服务器端请求伪造的保护措施。
- •有意使用私有服务的运维人员必须通过 ssrfexceptions 允许所需的目标地址,然后重启应用程序并测试受影响的集成。

通过标准 Docker 部署运行自托管比特币支付软件 BTCPay Server 的运维人员,如果希望保留洋葱网络访问,必须在下一次设置或更新时显式选择 Tor。这项随 2.4.5 版本引入的变更将 Tor 从自动包含的组件中移除,使这项原本捆绑的服务成为管理员的一项配置选择。
BTCPay 在随 2.4.5 版本发布的、日期为 10 月 5 日的公告中详细说明了这一部署变更,而 GitHub 官方发布页面记录的软件发布日期为 10 月 6 日。对于现有安装,触发条件是下一次 Docker 设置或更新——这意味着除非运维人员重新选择启用,否则该组件可能会在日常维护过程中从运行中的部署里消失。
这项调整对依赖 Tor 的 Docker 运维人员尤为重要,包括通过服务器的洋葱地址(即 Tor 隐藏服务暴露的 .onion 端点)进行访问,而他们此前是通过核心 BTCPay Server 片段获得该服务的。片段是用于组装 Docker 堆栈的配置组件。
更新后重新启用 Tor
BTCPay 建议管理员在更新前审阅部署变更。升级到 2.4.5 版本后,启用 Tor 的指令为:
sudo btcpay-fragments add opt-add-tor
Tor 仍然受支持,BTCPay 表示现有数据仍保留在当前的 Tor 卷中。这可以保留已存储的数据,不过持续的洋葱网络访问仍取决于部署中是否包含并运行 Tor。
根据 BTCPay Server 文档,可选的 Tor 片段 opt-add-tor 用于添加隐藏服务和选定的洋葱网络连接。运维人员可以使用 btcpay-fragments show 检查自己的配置,该命令不会做任何更改,并会报告已保存的附加片段和排除片段,以及上次生成的清单中的生效片段。在更新前以及添加片段后分别检查该输出,可以让管理员获得堆栈实际运行内容的前后对照记录。更改片段的命令需要 root 权限,并会立即重新应用设置。
私有服务需要单独设置例外
2.4.5 版本的发布说明还指出了针对出站 HTTP 请求的一项破坏性变更:对于 Lightning 连接、LNURL 请求、发票通知 URL 和 webhook,私有网络目标默认被阻止。此限制旨在防范服务器端请求伪造(SSRF),即一类应用程序被诱导向内部或其他受限网络资源发送请求的漏洞。
由于两项变更出现在同一版本中,一次更新可能同时影响运维人员设置的两个独立部分:洋葱网络的可用性以及向私有地址发起的出站调用。在该保护启用后,有意使用私有服务的运维人员必须通过 ssrfexceptions 允许所需的目标地址。BTCPay 的运维指南指出,更改该设置后应重启应用程序并对受影响的集成进行测试。