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

date
Oct 15, 2023
slug
nas-cloudflare-tunnel
status
Published
tags
路由器
summary
使用cloudflare tunnel免费配置黑群晖内网穿透
type
Post
💡
上一篇提到了给蜗牛星际升级到了7.2版本的黑群晖系统,迫于家中网络没有内网环境,但路由器端已经安装了ShellClash,想到了cloudflare 免费提供了tunnel 功能,用来内网穿透,完全可以运用到黑群晖上。 目前基本上ssh 、 http、tcp、smb等服务都可以通过此方式外网使用。

创建Cloudflare Tunnel

登录进 cloudflare 控制台,点击Zero Trust 进入tunnel配置页面,新建一个tunnel,随便起个名字,如nas,然后复制token 供后面使用
notion image
 

Nas 安装 cloudflared

网上的相关教程大多推荐使用矿神的套件源去安装,但是亲测不是很稳定,这里更推荐使用docker 去安装,安装过程如下
  1. Container Manager 中找到官方的 cloudflare/cloudflared,下载最新版本
notion image
  1. 在映像中双击下载好的镜像,进入配置
notion image
  1. 勾选启用自动重新启动
    1. notion image
  1. 下一步,设置网络为host,命令为tunnel --no-autoupdate run --token <复制的token>
notion image
 
  1. 下一步启动即可,此时返回cloudflare 的tunnel 页面,应该可以看到 连接状态为 HEALTHY,说明链接成功。
notion image

配置内网服务域名

💡
需要有一个域名,这样所有的内网服务都可以配置一个域名,cloudflare提供了https证书,很方便。
notion image
先确定群晖上的服务类型和端口是什么,如HTTP、HTTPS、TCP、SSH、SMB、RDP等,不确定的话可以在群晖的控制面板 - 信息中心-服务中查看当前的服务的端口信息。
然后在cloudflare 上配置想要映射到公网的服务的相应的 Public hostnames 和对应的Service
强烈建议先阅读下官方的文档

Web服务

💡
理论上支持所有的HTTP服务,群晖的内部服务或Docker安装的服务
如群晖 DiskStation Manager (登录页)使用了5000 端口,服务类型是HTTP,在新建的tunnel nas 中新增一条public hostname,配置如下
notion image
保存后,浏览器打开刚设置好public hostname,输入用户名和密码,现在你可以通过浏览器公网访问到家中的nas了,并且可以管理群晖的内部服务如PhotoDriveDownload Station 等。
IOS端的应用如 群晖管家群晖Photo群晖Drive 也通过支持此域名进行登录。
如果是其他的HTTP服务,比如你安装了Aria2 或 Transimission 的WebUI服务,或者是WEBDAV server也可以按照这种方式配置,选择服务类型为 HTTP,URL 为 localhost:<端口号>即可。

TCP 服务

💡
TCP类型的服务,需要在客户端侧安装cloudflared 服务/或Warp,然后才能通过域名访问。
Synology Drive Client
群晖Drive(Synology Drive) 使用了6690端口,协议为TCPPublic Hostname 设置如下
notion image
 
网上有很多关于群晖Drive Client搭配cloudflare tunnel的教程,但都试过了客户端均提示无法连接。查看了下cloudflare 的官方文档后发现,对于TCP协议的服务,需要进行额外的操作,以Mac 为例,安装cloudflared,然后开启服务。
此时打开Synology Drive Client 客户端,按照下面填写127.0.0.1:6690,用户名和密码,连接即可。
notion image
 

SSH服务

SSH服务默认端口为22,cloudflare 特别支持了SSH协议,可以参考文档配置,Public hostname 参数配置如下
notion image
同样的,在Mac下安装cloudflared ,通过运行 vim ~/.ssh/config 编辑ssh的配置文件。
然后就可以通过 ssh username@<配置的hostname> 进行远程ssh 进Nas了

SMB服务

SMB服务默认端口为445,配置不多赘述,如下
notion image
同样的,在Mac下安装cloudflared ,终端运行下面的指令
然后打开Finder(访达)-连接服务器,然后输入 smb://127.0.0.1:8445 即可挂载SMB。

Openwrt 安装Cloudflared

💡
顺便记录下openwrt 路由器(红米AX6S,arm64)安装cloudflared 和配置公网访问管理平台的过程
请先确保你有足够的存储空间(33.2MB),并在cloudflare上新建了一个tunnel,命名为router,复制好token,cloudflared 软件包地址为 可以查看最新的版本号,我用的是2023.8.2
ssh 进入路由器,先下载cloudflared
然后设置开机自启服务文件
编辑脚本 vim /etc/init.d/cloudflared
运行并设置开机自启
查看日志和进程是否运行
打开 <设置的public host> 即可公网访问家里的路由器管理页面。

使用体验

当然,cloudflare 支持的平台很多,你也可以在内网的机器上安装对应平台的cloudflared 程序。 然后参数的配置可以参考上面。
cloudflare 虽然提供了免费的tunnel,但是访问速度不是太快,大约有20Mb,日常使用没什么问题,我用cloudflare tunnel 设置了 ssh、smb、webdav、Synology Drive、群晖门户、Openwrt路由器等服务的公网域名,目前使用感觉还不错,推荐使用。
 

© hack-fang 1995 - 2024