在使用 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 服务才能生效。
验证方法¶
- 安装并重启后,打开浏览器控制台。
- 检查
globalThis.__DSH_TRANSPORT__是否包含{ ownsHost: true }。 - 进入「设置 → 模型」,检查提供商目录是否正常加载。
适用场景与注意¶
- 放宽门控:该插件有意放宽了一道设计门控。声明
ownsHost会将页面视为「可信本机」,从而同时放开其他依赖isLoopback条件的客户端表面(例如打开配置文件、原生目录选择等)。 - 安全依赖:页面必须继续由 dsh 的 token 或浏览器会话 cookie 保护。公网部署建议增加额外认证(如 nginx Basic Auth)。
- 服务端配置:不改变服务端信任护栏,部署时仍需使用
--trusted-host <域名>启动 dsh web。 - 适用范围:仅适用于你自己可达且已用其他手段保护的部署。
该插件仅解决客户端判定问题,不改变服务端权限逻辑。如需了解更多细节或查看源码,请访问 GitHub。