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

群晖服务使用 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

obaby ·v1 山东 Reply

cf 的隧道速度咋样?

ysicing ·v1 北京 Reply

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