前言¶
DeepSeek Harness (DSH) 本地运行时,开发者常需要通过局域网或公网访问控制台。直接暴露端口风险较高。dsh-remote-access 插件通过 Caddy 反向代理与 API Gateway,为本地 DSH 提供了安全的局域网访问、Tailscale 私有入口以及可选的 Cloudflare Tunnel 公网入口。
核心功能¶
该插件主要解决本地 DSH 的远程接入问题,核心能力包括:
- 多模式入口:提供局域网 (LAN)、Tailscale Serve/Funnel 和 Cloudflare Tunnel 三种访问模式。
- API 策略控制:针对不同入口配置独立的 API 白名单(lan/serve/funnel/cloudflare),默认限制高风险接口。
- 统一网关:使用 Caddy 作为反向代理和 API Gateway,统一处理 Host、Origin、WebSocket 和 TLS。
- 认证与安全:支持 Basic Auth 凭据管理,提供二维码登录入口(一次性票据),并具备边缘诊断工具。
- TLS 自动化:LAN 模式下支持
lanTlsMode: auto,能自动检测 OpenSSL 或回退到 Caddy internal CA。
安装与启用¶
- 使用命令安装:
dsh plugin --profile web add @greenonion/dsh-remote-access
- 手动安装:
git clone <repo-url> dsh-remote-access
cd dsh-remote-access
node install.js
- 安装完成后重启 DSH,在「设置 → 远程访问」中操作 Caddy、LAN 策略和 API 策略。
典型用法¶
- 配置 LAN TLS:
默认lanTlsMode为auto。若找不到 OpenSSL,会自动回退到 Caddy internal。可在cordis.patch.yml中显式指定为caddy-internal以避免依赖系统 OpenSSL。 - 配置 Cloudflare Tunnel:
在设置页开启 Cloudflare,并配置externalOrigins(如 https://dsh.example.com)。插件只控制 loopback 适配器,不管理 cloudflared 进程。 - 运行诊断:
使用自带的诊断脚本检查网络状态。
node scripts/edge-diagnostics.mjs --tailscale --json
适用场景与注意¶
- 适用场景:本地运行的 DSH 需要被局域网内其他设备或公网访问。
- 注意:
- 新版 DSH 由
client-connection认证浏览器页面,旧版本可能回退。 - Tunnel-only 模式不提供用户身份认证,仅提供基础 API。
- API 方法白名单不是沙箱,获得
session.prompt的主体仍拥有完整控制权。 - LAN 可通过
lanAllowedCidrs限制来源网段。 - 关闭端口会从 Caddyfile 中移除,由 Caddy
--watch热应用。
- 新版 DSH 由
结语¶
该插件通过统一网关和策略控制,解决了 DSH 本地运行时的远程接入问题。如需查看完整文档或反馈问题,可访问 GitHub 仓库。