HELLO NAS BLOG

『NAS』我把 NAS 的所有 Docker 服务都挂到了自己的域名下,外网可访问了

有些品牌的 NAS,在使用 Docker 部署了一些项目后,只能在局域网访问,有些品牌虽然能在外网访问,但官方提供的地址经常变来变去,而且只能自己访问,别人无法直接访问。

💡整理了一个 NAS 专属玩法专栏,感兴趣的工友可以戳这里关注 👉 《NAS邪修》

有些品牌的 NAS,在使用 Docker 部署了一些项目后,只能在局域网访问,有些品牌虽然能在外网访问,但官方提供的地址经常变来变去,而且只能自己访问,别人无法直接访问。

本次以绿联 NAS 为例演示,其他品牌 NAS 的操作步骤基本一致。

跟着做就能让你在 Docker 部署的应用实现“外网穿透”。

开始之前需要准备:

  • 一个 Cloudflare 账号(https://dash.cloudflare.com/)
  • 一个托管到 Cloudflare 的域名
  • 一台支持 Docker 的 NAS(绿联、群晖、威联通均可)

**如果没有域名,想用免费稳定的可以参考这个方法 👉 《免费域名,虽然长得有点丑,但免费!》**

按照这篇文章的方法注册好域名并绑定到 Cloudflare 上。

我有一个域名(https://leihou.dpdns.org)已经免费用了一年多了,非常稳定。

『NAS』我把 NAS 的所有 Docker 服务都挂到了自己的域名下,外网可访问了 配图

本文用 doai.dpdns.org 这个域名演示。

在浏览器 打开Cloudflare(https://dash.cloudflare.com/),登录后,在左侧面板找到“Zero Trust”,点击它。

『NAS』我把 NAS 的所有 Docker 服务都挂到了自己的域名下,外网可访问了 配图

进入“Zero Trust”页面后,点击左侧面板的“网络 - 连接器”,然后点击“添加隧道”按钮。

『NAS』我把 NAS 的所有 Docker 服务都挂到了自己的域名下,外网可访问了 配图

然后选择创建隧道的类型,选择“Cloudflared”,也就是左边那个。

『NAS』我把 NAS 的所有 Docker 服务都挂到了自己的域名下,外网可访问了 配图

给这个隧道创建一个名字。建议跟着你的域名来创建,比较好记。

然后点击“保存隧道”按钮。

『NAS』我把 NAS 的所有 Docker 服务都挂到了自己的域名下,外网可访问了 配图

在隧道的配置界面,“选择设备的操作系统”这里选择 Docker,然后下方会给出 docker 相关的命令。

这句命令的 --token 后面跟着的这段很重要,不要泄露出去。

此时的“连接器”还没检测到你的 NAS,可以看到最下方的那个框里提示“未安装连接器”。

『NAS』我把 NAS 的所有 Docker 服务都挂到了自己的域名下,外网可访问了 配图

Cloudflared 这边先停留在隧道的配置界面,接下来打开绿联 NAS 的「文件管理」应用,找到 docker 文件夹,在其中新建 cloudflared 文件夹。

『NAS』我把 NAS 的所有 Docker 服务都挂到了自己的域名下,外网可访问了 配图

打开「Docker」应用,切换到 “项目” 面板点击“创建”,按以下信息填写:

  • 项目名称:cloudflared
  • 存放路径:选择上一步创建的 /docker/cloudflared

『NAS』我把 NAS 的所有 Docker 服务都挂到了自己的域名下,外网可访问了 配图

Compose配置如下:

services:
  cloudflared:
    image: cloudflare/cloudflared:latest
    container_name: cloudflared
    restart: unless-stopped
    network_mode: host
    command: tunnel --no-autoupdate run --token 将你的token粘贴在这里

上面的这段 Compose 配置,最后的 --token 后面要跟上你在 Cloudflare 隧道配置里的 Token 值。

然后点击“立即部署”。

『NAS』我把 NAS 的所有 Docker 服务都挂到了自己的域名下,外网可访问了 配图

项目构建成功后,回到浏览器这边,刚刚 Cloudflare 的隧道配置界面,就能看到连接器已经成功检测到了。

点击“下一步”。

『NAS』我把 NAS 的所有 Docker 服务都挂到了自己的域名下,外网可访问了 配图

接下来配置隧道的路由流量。

  • 主机名:

    • 子域名:建议输入你在 Docker 里部署的应用名,先填1个,后面可以继续添加的。

    • 域:选择你的域名。

    • 路径:在本文的这种示例里,不建议填路径。

  • 服务:

    • 类型:根据你在 NAS 里的 Docker 里部署的应用来决定,我的应用在内网访问,通常是选 HTTP 的方式来部署。比如我的「pansou」这个应用在内网访问是 http://192.168.31.202:3306。
    • URL:输入你要外网访问的应用的 IP+端口,比如 192.168.31.202:3306

『NAS』我把 NAS 的所有 Docker 服务都挂到了自己的域名下,外网可访问了 配图

我这么配置是有理由的。

一台 NAS 就绑定一个「域名」,NAS 里通过 Docker 部署的多个应用,分别配置不同的「子域名」。

比如我给「pansou」这个应用配置完,在浏览器访问 pansou.doai.dpdns.org 就能访问这个项目。

如果是通过「路径」的方式来配置,那就变成 doai.dpdns.org/pansou ,这样也不是不行,但如果你部署了多个应用,有可能应用和应用之间的路径会冲突。

所以如果多个应用共用一个域名,通过「子域名」的方式来区分的话是较好的选择。

部署完,点击“完成设置”,然后在浏览器访问 https://pansou.doai.dpdns.org/ 就能打开你刚刚关联的应用了。

『NAS』我把 NAS 的所有 Docker 服务都挂到了自己的域名下,外网可访问了 配图

如果要在同一个域名里添加多个应用可以这么做。

配置的位置:

Cloudflare -> Zero Trust -> 网络 -> 连接器 - 选择隧道名 -> 已发布应用程序路由 -> 添加已发布应用程序路由

选择隧道。

『NAS』我把 NAS 的所有 Docker 服务都挂到了自己的域名下,外网可访问了 配图

找到“已发布应用程序路由”,点击“添加已发布应用程序路由”。

『NAS』我把 NAS 的所有 Docker 服务都挂到了自己的域名下,外网可访问了 配图

接下来就是熟悉的界面了,按照前面的步骤添加新应用即可。

『NAS』我把 NAS 的所有 Docker 服务都挂到了自己的域名下,外网可访问了 配图

如果要删掉域名下已发布的应用,找到对应的应用,在菜单项选择删除即可。

『NAS』我把 NAS 的所有 Docker 服务都挂到了自己的域名下,外网可访问了 配图

要删除连接器也是很简单,找到要删除的连接器,在菜单里选择“删除”即可。

『NAS』我把 NAS 的所有 Docker 服务都挂到了自己的域名下,外网可访问了 配图


以上就是本文的全部内容啦,你有好玩的镜像推荐吗?欢迎在评论区留言讨论!

想了解更多NAS玩法记得关注《NAS邪修》👏

往期推荐:

继续看看其他折腾记录

更多 NAS、自托管服务和工具分享都在博客列表。

返回博客

SEARCH

搜索文章

输入关键词开始搜索。