DeepSeek Harness (DSH) 采用「一切皆插件」的架构,支持通过插件扩展功能。对于需要在远程环境(如内网、云服务器)使用 dsh Web UI 的开发者而言,通常需要配置公网 IP 或端口映射。dshost-plugin 是由 NoelJudeNoel 维护的官方远程云中继插件,它通过 WebSocket 安全隧道,允许你从任何地方访问本地的 dsh 实例,无需暴露本地端口。
插件简介¶
该插件隶属于 DSH 生态,旨在解决远程访问场景下的网络穿透问题。它是一个基于 MIT 许可证开源的工具,通过在本地运行一个 Agent,主动连接 DSHost 的中继服务器来实现反向代理。
核心功能¶
- 零公网 IP:Agent 主动外连中继服务器(
wss://dshost.me/agent),本地不需要开放任何入站端口。 - 零破坏性多版本兼容:支持 DSH 的多个版本区间,包括
0.0.1-rc.*至0.1.5-*的各个版本。 - 安全机制:中继层对 Host/Origin 进行重写,遵守 DSH 的信任栅栏;
settings.describe中的敏感密钥会被脱敏下发;在生产环境中强制使用wss加密传输。 - 随 dsh 启动:以 cordis 插件身份随
dsh web命令加载,支持自动重连和休眠省流。
安装与启用¶
安装前请确保环境满足依赖要求:Node.js >= 22.5.0。
1. 申请 Token¶
访问 dshost.me 注册或登录,创建实例后获取以 dsh_ 开头的接入 Token。
2. 一键安装(推荐)¶
使用官方安装脚本,它会自动安装 pnpm 并将插件加入当前 profile。
# macOS / Linux
curl -fsSL https://dshost.me/install.sh | RELAY_HOST=dshost.me bash
3. 手动安装¶
dsh plugin add dshost-plugin
4. 配置插件¶
在当前 profile 的 cordis.patch.yml 文件中声明插件。新增配置行必须放在 - insert: 块内:
- insert:
- id: dshost-agent
name: 'dshost-plugin'
config:
token: dsh_your_token_here
relayUrl: wss://dshost.me/agent
autoConnect: true
5. 重启 dsh¶
应用配置后,重启 DSH 服务。
sudo systemctl restart dsh
配置项说明¶
| 字段 | 必填 | 说明 |
|---|---|---|
token |
✔ | 中继接入 Token,在 dshost.me 申请 |
relayUrl |
✔ | 中继 WebSocket 地址,生产环境必须为 wss:// |
autoConnect |
✕ | 默认 true,启动即连接 |
dshHost / dshPort |
✕ | 本机 dsh web 地址,默认 127.0.0.1:3080 |
注意事项¶
- Node.js 版本:插件依赖 Node.js >= 22.5.0 运行环境。
- 依赖库:核心依赖
ws库。 - 许可证:使用 MIT 许可证,请自行检查源码。
- 权限:插件以当前 dsh 进程的权限运行,请确保配置的
dshHost和dshPort可被该进程访问。 - 语法要求:在
cordis.patch.yml中声明插件时,新增内容必须位于- insert:列表项中。
总结¶
dshost-plugin 为 DSH 用户提供了一个无需公网 IP 即可安全访问 Web UI 的方案。它通过 Agent 主动外连的架构降低了运维复杂度,同时通过安全重写和强制加密保障了数据传输的可靠性。