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 还提供 BasicAuth、IP 黑白名单、地址围栏 等安全策略,让 Harness 在更安全可控的情况下实现公网访问。
一、在飞牛上安装 ZeroNews 客户端
- 打开飞牛 应用中心,搜索
zeronews,安装并一路下一步。安装完成后打开客户端界面。
- 打开 ZeroNews 控制台 → 快速开始,复制 AuthToken。
- 回到飞牛的 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 必须开;白名单或围栏按实际情况再开一项。