dsh-remote-trust:修复反向代理环境下的 DeepSeek Harness 设置界面

在使用 DeepSeek Harness (DSH) 时,通过域名或反向代理(如 nginx)访问 Web 界面是常见需求。本机访问一切正常,但一旦通过域名访问,进入「设置 → 模型」页面,通常会提示「settings are unavailable in this browser」。这并非服务端拦截,而是客户端基于 isLoopback 的安全策略判定。

dsh-remote-trust 是 DeepSeek Harness 的一款插件,由 deepseekv41flash 维护。它通过在页面加载时注入脚本,将当前页面标记为「可信本机」,从而绕过客户端的 isLoopback 检查,让设置界面的镜像持久化功能正常工作。

核心功能

  • 注入脚本:利用 ctx.webServer.tapIndex() 向 index.html 注入脚本。
  • 修改判定:设置 globalThis.__DSH_TRANSPORT__.ownsHost = true,让客户端认为当前页面是本机(loopback)。
  • 纯净实现:不修改 DSH 源码,不覆盖 server.emit。
  • 容错处理:支持静默降级,依赖缺失时不报错。

安装与启用

通过命令行安装该插件:

dsh plugin --profile web add dsh-remote-trust

安装后需要重启 DSH 服务才能生效。

验证方法

  1. 安装并重启后,打开浏览器控制台。
  2. 检查 globalThis.__DSH_TRANSPORT__ 是否包含 { ownsHost: true }。
  3. 进入「设置 → 模型」,检查提供商目录是否正常加载。

适用场景与注意

  • 放宽门控:该插件有意放宽了一道设计门控。声明 ownsHost 会将页面视为「可信本机」,从而同时放开其他依赖 isLoopback 条件的客户端表面(例如打开配置文件、原生目录选择等)。
  • 安全依赖:页面必须继续由 dsh 的 token 或浏览器会话 cookie 保护。公网部署建议增加额外认证(如 nginx Basic Auth)。
  • 服务端配置:不改变服务端信任护栏,部署时仍需使用 --trusted-host <域名> 启动 dsh web。
  • 适用范围:仅适用于你自己可达且已用其他手段保护的部署。

该插件仅解决客户端判定问题,不改变服务端权限逻辑。如需了解更多细节或查看源码,请访问 GitHub。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜