dshost-plugin: DSHost 官方远程云中继插件

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 主动外连的架构降低了运维复杂度,同时通过安全重写和强制加密保障了数据传输的可靠性。

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

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

小夜