前言¶
DeepSeek Harness(dsh)的 dsh web 只监听 127.0.0.1,这是安全模型的一部分:认证面向单操作者,启动令牌换长期 Cookie,没有多用户与会话吊销。人在外网时,若只想用手机或另一台电脑继续用家里那台机器上的 Web 界面,常见做法是 VPN 或路由器端口转发——前者要额外维护一套接入,后者等于把能执行命令的界面直接暴露到公网,和 DSH 的设计前提冲突。
下面介绍社区插件 dsh-web-relay(维护者 LFF28):内网主机主动连出一台自建中继,经 SSH 反向隧道和 Caddy 网关,在不开入站端口的前提下,让远程设备通过 HTTPS 访问本机 dsh web。
这是什么¶
dsh-web-relay 是 DSH 的联网类插件(npm 包名 dsh-web-relay,当前资料中版本 0.1.0,MIT 许可)。它解决的是:在不改 dsh web 仍只绑 loopback 的前提下,从公网侧安全地「用到」这台 Web 控制台。
中继侧只依赖系统自带的 sshd 与 Caddy,不安装本仓库代码;连接方向始终由内网主机发起,浏览器只与中继通信。
核心功能¶
资料中可核对的能力如下。
拓扑与不变量¶
flowchart LR
D["设备<br/>手机 / 电脑"] -->|"HTTPS + 网关口令"| R["中继服务器<br/>Caddy + sshd"]
R -->|"SSH 反向隧道<br/>由内网主机主动拨出"| H["内网主机<br/>dsh web"]
- 内网主机不开放任何入站端口;隧道端点在中继上只绑 loopback,能连它的只有同机 Caddy。
- 设置页填写参数后点「部署」,引导会在中继上幂等完成受限账号、sshd 加固、Caddy、证书与隧道;失败可原样重跑。
- 四层彼此独立的校验:TLS、网关口令、DSH 会话 Cookie、Host/Origin 围栏;中继上不存 DSH 凭据,对外通常只开一个 HTTPS 网关端口。
你会得到什么(README 归纳)¶
- 穿透 NAT,且不把
dsh web直接绑到公网接口。 - 部署完成后终端会打印访问 URL,以及根证书指纹、中继主机密钥指纹、Caddy 版本等信息(示例见下文典型用法)。
- 包内文档覆盖工作原理、部署、配置项、本机/中继改动、安全设计与排障(仓库
docs/目录)。
安装与启用¶
前置条件(来自 README):
- 一台有公网地址的中继(如 VPS),安全组放行将要使用的网关端口。
- 中继上管理账号支持公钥登录,且可免密
sudo。 - 本机已安装 DSH,能正常运行
dsh web。
从 npm 安装(官方命令,需 web profile):
dsh plugin --profile web add dsh-web-relay
安装后重启 dsh web,插件才会加载设置页与相关逻辑。
典型用法¶
1. 在本机完成首次配置¶
必须在运行 dsh web 的那台机器本机打开设置:DSH 对非 loopback 访问会把设置持久化降级为内存,远程页面无法写入配置。
在本机浏览器访问:
http://127.0.0.1:<dshPort>
进入 设置 ▸ 远程访问,填入中继地址、管理账号、网关端口与网关口令等,点击「部署」。
2. 收藏远程访问地址¶
部署成功后,终端会出现类似输出:
dsh-web-relay: https://203.0.113.7:8443/
根证书指纹 SHA256:…
中继主机密钥 SHA256:…
Caddy v2.11.4
将第一行的 HTTPS 地址保存到手机或外出用的电脑。访问时需输入部署时设置的网关口令,再按 DSH 常规定完成会话认证。
3. 根证书(强烈建议)¶
中继使用私有 CA 时,浏览器会提示证书不受信任。README 说明:不安装 CA 则只有加密、没有身份验证。在设置页状态区「下载根证书」,核对指纹后安装到设备,可减少警告并恢复对中继身份的校验。
配置说明¶
设置页字段包括中继地址、管理账号、网关端口、网关口令等部署参数;另有包内默认值可调的行为项(如重连退避、超时、入口开关)。字段含义见仓库 configuration.md。
适用场景与注意¶
适合谁
- 已有或可自备一台 VPS 作中继,希望在外网用浏览器操作家里/办公室那台 DSH,又不想在内网主机上开入站端口。
- 能接受自建中继的运维成本,并愿意按文档做网关口令与 TLS 相关配置。
务必知晓
- 插件在当前
dsh进程权限下运行;安装前应阅读源码与 MIT 许可证,理解 安全设计 中的威胁模型与已知限制。 - 网关口令是必需项,不是可选加固;DSH 自身认证强度不足以直接面向公网。
- 中继上建议只跑
sshd与 Caddy,且只暴露网关所需 HTTP(S) 端口——多开端口可能增加会话 Cookie 被读到的面。 - 中继被攻破时,隧道上的明文可能被读取;这是该架构的固有代价。
- 社区目录 SkillHub 插件页 与 GitHub 仓库由社区维护,与 DeepSeek / 幻方无官方从属关系;DSH 生态本身是「一切皆插件」,本文仅介绍该插件在资料中写明的行为。
结尾¶
dsh-web-relay 用「内网主动出站 + 中继 TLS 与网关口令 + 本地仍只监听 127.0.0.1」的方式,把远程访问和 DSH 的单操作者安全边界拆开处理。若你的场景符合上文前置条件,可按 npm 安装命令启用,并在本机设置页完成一次性部署。