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