前言¶
DeepSeek Harness (DSH) 默认仅监听本地回环地址,这使得开发者无法直接从其他设备访问。直接暴露 DSH 的 Web 端口存在安全风险。dsh-remote-gateway 插件提供了一个安全的反向代理方案:DSH 进程本身始终只监听 127.0.0.1,由网关负责接收远程请求并进行认证转发。
插件简介¶
该插件由 RyensX 维护,旨在解决 DSH 的远程访问需求。它通过网关模式,将外部请求安全地转发到本地,并支持认证、IP 白名单、HTTPS 配置等功能。
核心功能¶
- 安全转发:DSH 本身始终只监听
127.0.0.1,由插件提供的网关进行转发。 - 认证机制:支持密码认证和 IP 白名单。来源 IP 只读取 TCP socket,不信任代理请求头。
- 实时配置:设置页的所有配置(如监听地址、端口、白名单、密码)在点击“保存”后实时生效,无需重启 DSH。
- HTTPS 支持:支持使用宿主机上的 PEM 文件配置 HTTPS 证书。
- 交互优化:通过网关地址添加工作区时,会在当前浏览器内打开宿主机文件夹选择器,而非在远程主机弹窗。
安装与启用¶
使用官方命令安装插件:
dsh plugin --profile web add github:RyensX/dsh-remote-gateway
安装后,在 DSH 的设置页中找到该插件配置。首次使用时,必须通过本地 127.0.0.1 访问设置页并配置密码。
典型用法¶
基础访问流程¶
浏览器通过网关访问本地 DSH 的流程如下:
浏览器
→ dsh-remote-gateway(白名单 + 密码认证)
→ http://127.0.0.1:<DSH Web 端口>
局域网访问配置¶
如果需要在局域网内访问,需在网关配置中将“监听地址”从默认的 127.0.0.1 改为 0.0.0.0 或指定的网卡地址。
HTTPS 配置¶
HTTPS 使用宿主机上的 PEM 文件,配置方式如下:
dsh-remote-gateway:
tls:
enabled: true
certPath: /absolute/path/to/cert.pem
keyPath: /absolute/path/to/key.pem
注意事项:
* 证书和私钥路径必须是绝对路径,且文件大小不超过 1 MiB。
* 仅覆盖同一路径下的证书文件不会触发自动加载,需重启 DSH。
* 证书读取失败时不会降级到 HTTP,原监听器继续服务。
IP 白名单与 Host 控制¶
- IP 白名单:建议在需要特定设备访问时开启。支持精确 IPv4、IPv6 和 CIDR 格式。留空表示不限制来源 IP。命中白名单后仍需输入密码。
- Host 白名单:网关默认只接受本机 IP 和
localhost。如需使用局域网域名或 NAT 后的外部 IP,必须在“额外允许的 Host”中显式添加精确域名或 IP(不包含协议和端口)。
适用场景与注意事项¶
适用场景¶
- 需要在多台设备间同步使用 DSH 的开发者。
- 在局域网内搭建 AI 开发环境的场景。
- 需要通过 VPN 或内网穿透工具(如 Tailscale、ZeroTier、Cloudflare Tunnel)访问本地服务的场景。
注意事项¶
- 远程工具依赖:插件本身不直接提供远程访问服务,必须搭配 Tailscale、ZeroTier 等工具使用。
- 安全建议:HTTP 模式仅适合临时使用的可信局域网,长期使用或监听非回环地址应配置 HTTPS,并设置 IP 白名单和主机防火墙规则。
- 会话管理:会话按令牌独立滑动过期(默认 180 分钟),最长绝对生命周期为 7 天。服务端推送和心跳不会续期。
- 系统编辑器:通过网关打开配置文件时,会调用 DSH 原有的系统文本编辑器。
结语¶
dsh-remote-gateway 通过网关模式解决了 DSH 本地运行带来的远程访问痛点,同时保持了安全性。对于需要在多终端或远程环境使用 DeepSeek Harness 的用户,这是一个可靠的解决方案。