ZeroNews 采用 Nginx + Harness 的部署方式,让 Harness 继续跑在飞牛上,再通过 HTTPS 公网域名完成远程访问,不再局限于本机部署。 DeepSeek Harness Web UI 默认监听 http://127.0.0.1:3080。官方对部分配置类 API(模型、凭证、工作区等)做了严格限制:只信任回环来源。本机用 127.0.0.1 打开没问题;一旦把端口挂到 NAS 局域网或公网域名,模型页、远程改设置往往会 403。明文 http://IP 还会踩浏览器安全上下文,出现 crypto.randomUUID is not a function 如果你是在 macOS 本机跑 Harness,可参考 安全受控远程访问内网 DeepSeek Harness

ZeroNews 内网穿透

ZeroNews(零讯)是企业级安全内网穿透与反向代理平台,可在无固定公网 IP 的网络环境中,几分钟为内网 DeepSeek Harness Web UI 提供稳定可访问的 HTTPS 公网域名。 在能公网访问的基础上,ZeroNews 还提供 BasicAuthIP 黑白名单地址围栏 等安全策略,让 Harness 在更安全可控的情况下实现公网访问。

一、在飞牛上安装 ZeroNews 客户端

  1. 打开飞牛 应用中心,搜索 zeronews,安装并一路下一步。安装完成后打开客户端界面。
  1. 打开 ZeroNews 控制台快速开始,复制 AuthToken。
  1. 回到飞牛的 ZeroNews 客户端页面,粘贴 Token,点 绑定
等 10–20 秒,客户端状态变为 在线。同时在控制台 关联客户端 里,应能看到这台飞牛。 更完整的飞牛安装说明也可参考 在飞牛私有云 fnOS 运行 ZeroNews

二、先加域名,再加 HTTPS 隧道

docker-compose.yml 里要回填访问域名,所以域名和 DSH 的 HTTPS 隧道可以先创建。

先添加 DSH Web UI 的自定义域名

控制台 → 自定义域名添加域名,子域起个好记的前缀,例如 dsharp

然后添加 DSH HTTPS 隧道

域名添加完成后,进入 隧道管理 添加 DSH Web UI 的 HTTPS 隧道。部署时对外只暴露 Nginx 的 3080 端口,隧道内网端口填 3080

三、准备部署目录和 Nginx 配置

隧道添加完成后,回到飞牛上准备 DSH 容器的部署目录。 打开飞牛 文件管理,在「我的文件」里建一个部署目录。例如在 docker 下新建 dsh,后文以这个目录为准。 在电脑上新建 nginx.conf,复制以下内容,再上传到该 dsh 目录(与即将创建的 docker-compose.yml 同级):

四、用 Compose 部署 Harness 和 Nginx

打开飞牛 Docker → Compose 新建项目:
  • 项目名:dsh
  • 路径:选中上一步的 dsh 目录
  • 来源:创建 docker-compose.yml
  • 把下面整段粘进去,把 DSH_TRUSTED_HOSTS 改成你的隧道域名
  • 勾选 创建项目后立即启动,确认
等待镜像拉取完成并启动,确认两个容器都在运行。 几个注意事项:
  • user: root 避免飞牛把运行用户改成普通账号后,挂载目录写不进去。
  • Harness 不要再映射 3080:3080,只 expose 给 Nginx;对外只有 Nginx 的 3080:80
  • ./workspace 挂到容器 /workspace,后面添加工作区就选这个路径。
  • ./data 是 Harness 配置和会话数据,备份时整目录带走。
  • 改过 DSH_TRUSTED_HOSTS 必须重建项目,不要只重启。
两个容器都是绿色运行中后,本机 3080 已经起来。接下来不要用 http://飞牛IP:3080 去配模型——明文 IP 不是安全上下文,提供方目录会加载失败。直接走已经建好的 HTTPS 域名。

五、用域名打开 Web UI,完成基础配置

容器运行正常后,用浏览器打开隧道域名访问 DSH Web UI,例如:
打开后先完成基础配置。 配置模型 API Key 可以直接配置 DeepSeek 的 API Key。 添加工作区 回到主界面,新建工作区,目录选容器内的 /workspace,对应飞牛 dsh/workspace 目录。Agent 改文件、跑命令都落在这里,容器重建不会丢。 工作区建好后,开一个会话,先问一句:
能正常回复,说明域名、Nginx、受信 Host 和模型都通了。
文档截图中的域名仅为示例,请以 ZeroNews 控制台显示的实际地址为准。

六、给隧道做安全加固

Harness Web UI 本身没有登录认证,同时操作权限又比较大,能改文件、跑命令,域名一旦泄露风险很大。 因此在 ZeroNews 网关入口给这条 HTTPS 隧道做安全加固。这里使用 BasicAuth 给 DSH Web UI 加一层账号认证。 在隧道的 流量策略 中配置 BasicAuth。 点击编辑:启用,填写 用户名:密码,保存。 刷新域名,应先弹出浏览器登录框。随便输一组应被拒绝;输入正确账号后进入 Web UI,说明鉴权生效。 除了 BasicAuth,ZeroNews 还支持 IP 白名单地址围栏。可按实际情况再开一项。 地址围栏(地域访问控制) 地址围栏通过识别访问来源 IP 的位置,实现基于国家 / 省份的地域访问控制,缩小可访问来源范围。如果访问都固定在某一个省份,可以只允许该省访问。在流量策略的 Geo Location 中配置,例如只允许广东省访问。 Harness 这类高权限面板:BasicAuth 必须开;白名单或围栏按实际情况再开一项。

小结

把 DeepSeek Harness 部署在可长期运行的内网 NAS 上,工作区、密钥、改文件 / 跑命令的能力都留在本机;再通过 ZeroNews 的 BasicAuth、地址围栏、IP 黑白名单做安全公网发布,限制可访问的用户范围和身份,就可以在任何位置安全地远程执行和查看任务。