群晖服务使用 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
了
使用体验
- 速度一般,回家看片基本不行
- 访问家里的服务还算可以,但是会暴露在公网,这里需要结合之前说的安全策略,开启白名单访问