群晖服务使用 Cloudflare tunnel进行内网穿透教程

本文最后更新于 251 天前, 如有失效请评论区留言.

群晖服务使用 Cloudflare tunnel 进行内网穿透教程

迫于家里没有公网,在外面有时候又要使用家里的群晖。在目前这种 开源节流 的环境下,想到了 cloudflare 有提供了 tunnel 功能,用来内网穿透,完全可以运用到群晖上

创建 Cloudflare Tunnel

老生常谈,已经操作很多次了。

  • 登录进 Cloudflare 控制台,点击 ZeroTrust 进入 tunnel 配置页面
  • 新建一个 tunnel,随便起个名字,如 nas,然后复制 token 留待后面使用

安装 cloudflared

推荐使用 docker 去安装,简单方便

在 docker 注册表中找到官方的 cloudflare/cloudflared, 选中下载最新版本 latest 即可

在映像中双击下载好的镜像启动

其他参数默认,这里只列出需要修改的部分

  • 选择共享宿主机网络,方面内网穿透

  • 启用自动重新启动

  • 高级设置, 配置启动参数,具体参数你可以参考第二步 docker token 部分

  • 完成后续,等待启动

  • 等待就绪,返回 cloudflare 的 tunnel 页面,查看连接状态为 HEALTHY,说明链接成功

配置内网服务域名

配置域名,所有的内网服务都可以配置一个域名,而且 cloudflare 默认提供了 https 证书,很方便,也不需要考虑证书过期问题,爽歪歪

其实原理比较简单,由于 cloudflared 使用共享宿主机网络,我们只要掌握我们的服务监听什么端口,直接在 cloudflare 配置即可

如果不清楚相关服务端口的话,可以在群晖的 控制面板 - 信息中心-服务 中查看当前的服务的端口信息

Web 服务

理论上支持所有的 HTTP 服务,群晖的内部服务或 Docker 安装的服务

例如: 群晖 DiskStation Manager (登录页)使用了 5000 端口,服务类型是 HTTP,新增一条 public hostname,配置如下

保存后,浏览器打开刚设置好 public hostname,输入用户名和密码,现在你可以通过浏览器公网访问到家中的 nas 了,并且可以管理群晖的内部服务如 Photo、Drive、Download Station 等

群晖管家群晖Photo群晖Drive 等应用也通过支持此域名进行登录。

如果是其他的 HTTP 服务,比如你安装了 Aria2 的 WebUI 服务,也可以按照这种方式配置选择服务类型为 HTTP,URL 为 127.0.0.1:监听端口 即可

非 Web 服务

如 ssh 或者 smb 等协议,还要求当前客户端还需要跑 cloudflared

这种情况下,不如 tailscale

使用体验

  • 速度一般,回家看片基本不行
  • 访问家里的服务还算可以,但是会暴露在公网,这里需要结合之前说的安全策略,开启白名单访问

Sponsor

Like this article? $1 reward

Comments

刘郎 ·v1 贵州黔南 Reply

最近也在研究Cloudflare做内穿,看了这个还是有点帮助的

obaby ·v1 山东 Reply

cf 的隧道速度咋样?

ysicing ·v1 北京 Reply

@obaby 访问是没啥问题的,但是看视频比较费劲