前言¶
DeepSeek Harness 只监听 127.0.0.1,并且用一次性启动令牌认证——离开这台电脑就用不了。对于需要远程访问 dsh 的开发者来说,这很不方便。dsh-remote-portal 不改动 dsh 的任何机制,只在它前面加一道自己的门:独立端口上的网关,先验密码或一次性配对码,再转发给本机 dsh。
是什么¶
dsh-remote-portal 是一个为 DeepSeek Harness 提供远程能力的插件,由维护者 tsukii12 开发。它支持局域网和公网访问,通过独立的门户网关实现认证和转发。
局域网访问¶
局域网访问只需要一个地址:http://<局域网IP>:3081/。手机浏览器直接打开,不需要公网 IP 或端口映射。面板会生成二维码,180 秒有效、一次即失效。
公网访问¶
在你自己的服务器上跑中转(单文件、零依赖)。一条命令:
curl -fsSL https://raw.githubusercontent.com/tsukii12/dsh-remote-portal/master/tools/deploy-relay.sh | sudo bash
国内网络可以使用:
curl -fsSL https://ghfast.top/https://raw.githubusercontent.com/tsukii12/dsh-remote-portal/master/tools/deploy-relay.sh | sudo bash
脚本会自己下载 relay.mjs,探测环境、逐项提问(回车即默认),完成安装并注册 drp 命令。
交互式设置包括:
- 访客如何连接:1) HTTP 不加密 / 2) HTTPS
- HTTPS 用域名还是 IP:域名:配好证书后浏览器不报警;IP:自签证书,浏览器警告一次,之后照常加密
- 域名解析:填完域名会实际解析一次(优先问 1.1.1.1,避开本机缓存):指向本机才继续;指向别处(如走了 CDN)会提示并让你决定继续还是换域名;没有 A 记录会提示先加记录
- 证书:1) 自动申请,HTTP 校验(需 80 端口空闲)/ 2) 自动申请,DNS 校验(80 被拦也能签:Cloudflare 令牌或手工 TXT)/ 3) 我已有证书(粘贴 PEM 或填路径)/ 4) 自签(浏览器提示不安全)
- 端口:对外端口、中转端口(自动跳过已占用的;域名被 80/443 拦截时对外端口默认 8443)
⚠️ 选 HTTP 时,访问密码和全部会话内容(聊天、文件、命令输出)在公网上是明文。只有完全可信的局域网才该这么做。
管理命令:
$ drp
service running · autostart on
uptime 2h 14m
agent port 1.2.3.4:9443 (TLS)
visitor 0.0.0.0:443 (TLS, self-signed)
endpoint tls://1.2.3.4:9443
relay reachable
tunnel connected · 2 streams
traffic in 8.0 MiB · out 7.9 MiB · 2140 requests · 3 clients
public https://1.2.3.4/__t/ab12cd34ef56/
安装与启用¶
从 DeepSeek Harness 安装(推荐):插件 → 添加插件 → 填入
https://github.com/tsukii12/dsh-remote-portal
从命令行装:
git clone https://github.com/tsukii12/dsh-remote-portal
cd dsh-remote-portal
./install.sh # macOS / Linux,装进 desktop + web profile
.\install.ps1 # Windows
装完重启 DeepSeek Harness 即可。
首次必做一步:侧栏 → 远程访问 → 设置访问密码。在此之前门户不会监听局域网。
更新¶
先移除,再安装:
dsh plugin --profile desktop remove dsh-remote-portal
dsh plugin --profile desktop add https://github.com/tsukii12/dsh-remote-portal
Web端把 --profile desktop 换成 --profile web。
更新后必须重启 dsh:宿主侧代码(index.js、lib/*)只在启动时加载,光刷新页面只换到客户端一半。
锁定版本:
dsh plugin --profile desktop add https://github.com/tsukii12/dsh-remote-portal#v0.6.0
安全特性¶
- 门户是唯一的门:没设密码就不会监听非回环地址。
- 会话 Cookie
dsh_portal:HttpOnly、SameSite=Lax、绑定 UA,TLS 下自动Secure。 - 门户自己的每个响应都带严格 CSP /
X-Frame-Options: DENY;被代理的 dsh 响应一个字节都不改(有测试钉死)。 - 上游认证用宿主凭据在后台换取,令牌不出本机、不落日志、不回显面板。
- 明文 HTTP 下同网段可抓包看到 Cookie;介意就配 TLS 或走中转。
兼容性¶
| dsh 版本 | 0.2.x(在 0.2.1-rc.2 上逐项验证) |
| profile | desktop(Electron)与 web(dsh web) |
| 系统 | Windows / macOS / Linux |
| 浏览器 | Chrome / Edge / Safari 15.4+ / Firefox 121+ |
| Node 版本 | >=20 |
限制¶
- 只在同一网络内可达,公网访问需要服务器进行中转;不做 NAT 穿透。
典型用法¶
局域网访问时,在电脑和手机同一网段下,手机浏览器访问 http://<局域网IP>:3081/,扫描面板生成的二维码即可配对。公网访问时,在服务器上运行部署脚本,配置域名、证书和端口后,面板里「中转服务器」只填 IP:端口(如 1.2.3.4:9443),协议自动识别(先试 TLS,失败回退明文)。
适用场景与注意¶
适合需要在局域网或公网远程访问 DeepSeek Harness 的开发者。插件以当前 dsh 进程权限运行,安装前应检查源码与许可证(MIT)。