前言¶
DeepSeek Harness (DSH) 的 Web GUI 默认仅绑定本地地址。若需在外网或局域网访问,通常需要配置 SSH 隧道或复杂的反向代理。dsh-remote-access 是一个 DSH 插件,它作为 DSH Web 服务的 TLS 边缘入口,提供独立端口监听、自签证书、登录认证、会话保护以及 HTTP/WebSocket 透明反代功能,支持通过 FRP、Cloudflare 隧道等手段将服务暴露到远程。
核心功能¶
- TLS 与认证:独立端口(默认 3081)监听,自动生成自签证书。支持用户名+密码登录,登录后下发 HttpOnly/SameSite/Lax/Secure 的会话 Cookie。
- 透明代理:将 HTTP 和 WebSocket 请求透明转发到本机的 DSH Web 服务(127.0.0.1:3080)。
- 热配置:通过 GUI 设置面板即时更改 TLS、端口、监听地址、账号密码,支持启动/停止。
- 远程接入:支持局域网访问、FRP 隧道及 Cloudflare 隧道等远程访问方式。
安装¶
本插件是 DSH Web 的 Profile 插件,需要先有一个运行中的 DSH Web 部署。
使用官方命令 dsh plugin 安装(Linux / macOS / Windows 通用):
dsh plugin --profile web add github:zergtant/dsh-remote-access
安装后必须重启 DSH 才能生效。插件默认 enabled: false,不会自动监听任何端口。安装时 pnpm 可能会报 peer 依赖缺失提示,这是预期的,不影响实际运行。
使用¶
- 重启 DSH 后,打开 GUI:设置 → 远程访问。
- 设置用户名(默认
admin)和密码。 - 点击页面顶部的 「启动」 按钮(即时生效)。
- 访问:
- 本机:
https://127.0.0.1:3081 - 局域网:
https://<主机IP>:3081 - 公网:通过 frp 隧道指向
127.0.0.1:3081
- 本机:
配置项¶
| 字段 | 默认值 | 说明 |
|---|---|---|
| 启动/停止 | — | 页面顶部操作区:点「启动」立即拉起、点「停止」立即停止,均无需保存。按钮旁实时显示状态。 |
| TLS(https) | 开 | 自签 HTTPS。关闭 = 明文 HTTP(仅内网/调试用)。保存后生效。 |
| 端口 | 3081 |
1–65535,保存后即时迁移监听。 |
| 监听地址 | 0.0.0.0 |
0.0.0.0(对外)/ 127.0.0.1(仅本机,例如只给 frp 用)。 |
| 用户名 | admin |
登录用户名。 |
| 密码 | — | 存储在 DSH 凭据库(~/.dsh/.credentials.yaml),留空则保持不变。 |
注意事项¶
- 自签证书:浏览器首次访问时会提示证书不受信任,需点击”高级 → 继续访问”。
- 会话状态:会话为内存态,DSH 重启后需重新登录。
- 单实例限制:单进程单 edge,一个 DSH 实例对应一个 3081 端口,多实例需修改端口。
- pnpm 提示:安装时出现 peer 依赖提示是预期的,插件实际运行正常。
结尾¶
dsh-remote-access 通过添加一层 TLS 和认证网关,解决了 DSH Web 本地监听难以远程访问的问题,适合需要在内网或公网环境通过隧道访问 DSH 的场景。