前言¶
DeepSeek Harness(DSH)采用插件化架构,在远程部署或代理访问时,开发者通常需要分别处理远程设置的安全来源(Origin)和独立的密码访问网关。如果不加以区分,容易导致权限校验混乱或安全边界不清。
lemoncat7/dsh-remote-settings-compat 插件旨在将这两项能力收敛到一个安装包中。它通过统一的配置入口,提供可信浏览器 Origin 管理、独立密码网关以及 Knowledge 匿名分享功能,同时保持与 DSH 主程序解耦。
插件定位¶
这是一个 DeepSeek Harness 的统一远程访问兼容插件,由开发者 lemoncat7 维护。它不修改 DSH 主程序,也不接管 Knowledge 或 SSH 业务路由,而是通过官方 Bundle 接口提供扩展能力。
核心功能¶
该插件主要包含以下能力:
- 可信浏览器 Origin 管理:允许显式指定的浏览器 Origin 使用 DSH 官方模型、凭证和插件设置。这是 Origin 权威来源,同时用于远程设置和密码门禁校验。
- 独立密码网关:提供从端口 3081 到 3080 的透明代理。密码使用
scrypt不可逆存储,浏览器使用 HttpOnly、SameSite 会话 Cookie。 - 安全策略:包含登录限速、会话过期、可选 IP 绑定与一键撤销全部会话。
- 机器 API 兼容:配置的机器 API(如
/knowledge-api/v1)可继续使用 Bearer Token,Token 由目标插件验证。 - Knowledge 匿名分享:可显式开启 Knowledge 匿名读取,仅放行形如
/knowledge-api/v1/shared/share_...的合法分享页、清单和内容 GET 请求,不开放搜索、回写或管理接口。
安装¶
使用 Node.js 环境安装:
npm install
环境要求:Node.js 版本需为 ^22.19.0 或 >=24.0.0。
典型用法¶
Docker 部署配置¶
在 docker-compose.yml 中配置端口映射。端口 3081 作为密码网关入口,3080 为 DSH 原生服务。
services:
dsh:
ports:
# 仅允许回环访问,或根据网络环境调整
- "127.0.0.1:3080:3080"
# 密码网关,同机 Nginx 时可绑定 127.0.0.1
- "127.0.0.1:3081:3081"
插件内部配置示例:
dsh-access-gate:
enabled: true
listenHost: 0.0.0.0
listenPort: 3081
secureCookies: true
remote-settings-compat:
trustedOrigins:
- https://dsh.example.com:2439
Nginx 反向代理配置¶
Nginx 需将流量整体代理到 3081,并严格保留 Host 头。
location / {
proxy_pass http://127.0.0.1:3081;
# 必须保留非默认端口;不能用 $host
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_http_version 1.1;
}
首次启用流程¶
启用流程分为七个阶段,避免因配置不当导致访问中断:
1、在「设置 → 插件 → 远程访问」填写完整的 trustedOrigins。
2、启用网关,保存监听地址、端口和 Cookie 策略(如 secureCookies: true)。
3、使用 DSH 启动日志中的一次性初始化令牌设置密码。
4、发布 3081 端口,重启 DSH,并先确认 3081 能打开登录页。
5、把反向代理从 3080 整体切到 3081。
6、打开「部署自检」,确认 Host、Origin、当前入口和 Credentials 全部正常。
7、最后删除 3080 的对外发布,或将它收紧到宿主机回环地址。
升级与兼容¶
从独立的 dsh-access-gate 升级时,插件会继续读取旧的设置命名空间和凭证记录,无需重设密码或公开 Origin。但新包生效后,必须从 profile 中移除旧的 dsh-access-gate Bundle,避免两个网关同时监听同一端口。
注意事项¶
- 配置分离:配置
trustedOrigins不会自动启用 3081 或密码功能,需分别设置。 - Nginx 规则:严禁使用
$host变量,必须使用$http_host以保留非默认端口。 - Credentials 权限:使用官方本地 Provider 时,密码文件建议权限为
600,避免被其他进程读取。 - 业务路由:插件不接管 Knowledge 或 SSH 业务路由,这些功能仍由 DSH 原生插件处理。
结语¶
该插件通过统一入口管理远程访问的安全策略,为开发者提供了从 Origin 校验到密码网关的一体化解决方案。使用前请确认 Node.js 版本,并仔细检查 Nginx 配置以避免 Host 头丢失导致的安全问题。
项目地址:https://github.com/lemoncat7/dsh-remote-settings-compat