image-20260816101659706

8 月 13 号,DeepSeek 把官方 Agent「DeepSeek Harness」开源了,仓库名 dsh,MIT 协议。三天,star 冲到 11 万+。

先说我为什么装它。我一直用 Claude Code、Codex 这类 CLI agent,干活在服务器上,方式是 VSCode SSH 连过去敲命令。能用,但不直观,想随手看一眼状态、发个任务,还得先连 SSH。dsh 不一样,它带网页界面,浏览器一开就是 agent,手机也能用。当然,上班写代码的时候,还是优先用上面几个CLI工具啦!

为什么放服务器

一条核心理由,24 小时在线。CLI agent 挂在本机,电脑一关就没了,放服务器上,任何时候打开浏览器它都在。顺便多设备共享,手机、笔记本、公司电脑都能连。

部署,三步

装它是我装过最省事的 agent。

第一步,装。node -v 确认版本,官方要求 Node 22.19+ 或 24+(23.x 不在支持范围)。

npm install -g @deepseek-ai/dsh
dsh --version # 0.1.0-rc.6

装完务必确认版本,dsh 在 npm 上的版本号一度是乱的,这个坑最后说。

dsh-install

第二步,改默认端口。 默认 3080 太常见,容易被扫描器顺手摸,我换成高位端口 13388。

mkdir -p /workspace/dsh && cd /workspace/dsh
dsh web --port 13388

看到 dsh web: http://127.0.0.1:13388 就成了。注意地址是 127.0.0.1,dsh 默认只绑本机,这正是我们要的。

dsh-web-start

第三步,后台启动。 直接前台跑的话 SSH 一断服务就没了,用 systemd 挂住。先 command -v dsh 确认路径,全局 npm 装的一般在 /usr/bin 或 /usr/local/bin。

[Unit]
Description=DeepSeek Harness web
After=network.target

[Service]
Type=simple
WorkingDirectory=/workspace/dsh
ExecStart=/usr/bin/dsh web --port 13388
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now dsh

然后浏览器开 http://127.0.0.1:13388,设置里填 DeepSeek API Key,免重启就能用。

image-20260816100601251

外面怎么访问,别直接暴露公网

这就是直接暴露到公网的问题,谁都可以直接访问你的网站,而且现在DSH还没有鉴权功能!

image-20260816101909959

dsh 默认只监听 127.0.0.1,这是最正确的默认。它是能写文件、能跑命令的 agent,直接绑 0.0.0.0 等于把家门钥匙挂门口,端口扫描器 24 小时扫全网,开个公网端口几分钟就有扫描记录。dsh 官方把这条路焊死了,--host 0.0.0.0 直接拒绝,报错原话是 “it would expose remote code execution to the network”。

远程访问,我用 FRP 的 stcp 模式。原理一句话,公网上不开放任何目标端口,访问方和服务方各跑一个 frpc,拿同一个密钥握手,对上了才建隧道。相当于两个人对暗号,中间人只负责传话。

FRP 怎么装怎么配,我之前写过一篇 frpmgr 的教程,图形化客户端三步搞定,这里不重复了,直接看这篇,( https://www.wangwangit.com/2025-03-19-frpmgr-Windows%E5%86%85%E7%A9%BF%E9%80%8F%E7%A5%9E%E5%99%A8 )。

一个提醒,服务端 stcp 配在 [[proxies]] 段,访问方配在 [[visitors]] 段。网上很多老教程是 INI 格式,抄了 frpc 不认,认准官方文档 gofrp.org/en/docs/examples/stcp/ 的示例。

不想自己搭 frps,也有别的路

FRP 需要一台有公网 IP 的服务器当跳板。没有的话,这几个方案可以选,

  • Cloudflare Tunnel。不用公网服务器,域名用你自己的 CF 域名。临时用一条命令,cloudflared tunnel --url http://127.0.0.1:13388 会生成一个随机公网 URL。注意这个 URL 是公网可达的,没有登录认证,适合临时分享,长期用要加 CF Access 做登录鉴权。
  • Tailscale。把几台机器拉进一个虚拟局域网,装完像在同一内网,不需要任何公网端口。适合固定几个人自用。
  • 花生壳这类国内工具。一样的内网穿透,国内访问快,免费版有限制。

我选 FRP stcp 的原因,是因为部署这个服务的是一台云电脑,用隧道的方式不够友好,而且我还有一些服务是需要对外使用的,所以还是选择了frp的方式。

最后

最后说感受。dsh 部署本身简单到没什么可写的,真正值钱的是怎么安全地把 agent 交到自己手上。浏览器随时能用,公网零端口暴露,你要是也把 dsh 搬上了服务器,或者有更好的穿透方案,评论区见。