飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth

2026-09-09 12:45:27 0点赞 0收藏 0评论

在飞牛 NAS 上用 Nginx + DeepSeek Harness 容器部署,再通过 ZeroNews HTTPS 隧道与 BasicAuth 安全发布到公网。

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 还提供 BasicAuthIP 黑白名单地址围栏 等安全策略,让 Harness 在更安全可控的情况下实现公网访问。

飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth

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

  1. 打开飞牛 应用中心,搜索 zeronews,安装并一路下一步。安装完成后打开客户端界面。

飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth
  1. 打开 ZeroNews 控制台快速开始,复制 AuthToken。

飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth
  1. 回到飞牛的 ZeroNews 客户端页面,粘贴 Token,点 绑定

飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth

等 10–20 秒,客户端状态变为 在线。同时在控制台 关联客户端 里,应能看到这台飞牛。

飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth

更完整的飞牛安装说明也可参考 在飞牛私有云 fnOS 运行 ZeroNews

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

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

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

飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth

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

配置项填写值隧道协议HTTPS带宽按套餐选择,建议 5 Mbps 或更高公网域名选择自定义域名,再选刚添加的域名(如 dsharp.hn.takin.cc)绑定设备选择这台飞牛客户端内网地址默认本机内网端口3080

飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth

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

隧道添加完成后,回到飞牛上准备 DSH 容器的部署目录。打开飞牛 文件管理,在「我的文件」里建一个部署目录。例如在 docker 下新建 dsh,后文以这个目录为准。

飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth

电脑上新建 nginx.conf,复制以下内容,再上传到该 dsh 目录(与即将创建的 docker-compose.yml 同级):

events { worker_connections 1024; } http { map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 80; server_name _; location / { proxy_pass http://deepseek-harness:3080; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_read_timeout 3600s; proxy_send_timeout 3600s; } } } 飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth

四、用 Compose 部署 Harness 和 Nginx

打开飞牛 Docker → Compose

飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth

新建项目:

  • 项目名:dsh

  • 路径:选中上一步的 dsh 目录

  • 来源:创建 docker-compose.yml

  • 把下面整段粘进去,把 DSH_TRUSTED_HOSTS 改成你的隧道域名

  • 勾选 创建项目后立即启动,确认

services: deepseek-harness: image: alliot/deepseek-harness:0.1.0-rc.6.2 restart: unless-stopped user: root expose: - "3080" environment: DSH_TRUSTED_HOSTS: dsharp.hn.takin.cc DSH_ALLOW_REMOTE_CONFIGURATION: "1" DSH_TELEMETRY_DISABLED: "1" volumes: - ./data:/home/node/.dsh - ./work:/work - type: bind source: ./workspace target: /workspace read_only: true tmpfs: - /tmp:rw,nosuid,nodev,size=1g security_opt: - no-new-privileges:true cap_drop: - ALL stop_grace_period: 10s networks: - dsh-network nginx-proxy: image: nginx:alpine container_name: dsh-nginx-proxy restart: unless-stopped ports: - "3080:80" volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro depends_on: - deepseek-harness networks: - dsh-network networks: dsh-network: driver: bridge 飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth

等待镜像拉取完成并启动,确认两个容器都在运行。

飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth

几个注意事项:

  • 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,例如:

https://dsharp.hn.takin.cc/飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth

打开后先完成基础配置。

配置模型 API Key

可以直接配置 DeepSeek 的 API Key。

飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth

添加工作区

回到主界面,新建工作区,目录选容器内的/workspace,对应飞牛dsh/workspace目录。Agent 改文件、跑命令都落在这里,容器重建不会丢。

飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth

工作区建好后,开一个会话,先问一句:

你能做什么飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth

能正常回复,说明域名、Nginx、受信 Host 和模型都通了。

文档截图中的域名仅为示例,请以 ZeroNews 控制台显示的实际地址为准。

六、给隧道做安全加固

Harness Web UI 本身没有登录认证,同时操作权限又比较大,能改文件、跑命令,域名一旦泄露风险很大。因此在 ZeroNews 网关入口给这条 HTTPS 隧道做安全加固。这里使用BasicAuth给 DSH Web UI 加一层账号认证。在隧道的流量策略中配置 BasicAuth。

飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth

点击编辑:启用,填写用户名:密码,保存。

飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth

刷新域名,应先弹出浏览器登录框。随便输一组应被拒绝;输入正确账号后进入 Web UI,说明鉴权生效。

飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth

除了 BasicAuth,ZeroNews 还支持IP 白名单地址围栏。可按实际情况再开一项。

地址围栏(地域访问控制)地址围栏通过识别访问来源 IP 的位置,实现基于国家 / 省份的地域访问控制,缩小可访问来源范围。如果访问都固定在某一个省份,可以只允许该省访问。在流量策略的 Geo Location 中配置,例如只允许广东省访问。

飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth飞牛NAS跑DeepSeek Harness公网访问:ZeroNews隧道+BasicAuth

Harness 这类高权限面板:BasicAuth 必须开;白名单或围栏按实际情况再开一项。

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

展开 收起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
目录
0
扫一下,分享更方便,购买更轻松