黑群晖服务使用 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
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5a1ba17a-3249-4f55-9a15-e8042c47983a%2F8304b3be-bebf-412a-8815-6f9dce731bed%2FUntitled.png?table=block&id=573f0432-8fcf-46d4-b886-897ea3e0a75e&cache=v2)
Nas 安装 cloudflared
网上的相关教程大多推荐使用矿神的套件源去安装,但是亲测不是很稳定,这里更推荐使用docker 去安装,安装过程如下
- Container Manager 中找到官方的 cloudflare/cloudflared,下载最新版本
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5a1ba17a-3249-4f55-9a15-e8042c47983a%2Ff4a280ac-94d9-4411-9d5c-07e38c5a2f78%2FUntitled.png?table=block&id=481d7454-ee3c-4a32-ab45-538b6c88796b&cache=v2)
- 在映像中双击下载好的镜像,进入配置
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5a1ba17a-3249-4f55-9a15-e8042c47983a%2Fc7ffd054-2b45-4de9-8da0-5ec560960b6a%2FUntitled.png?table=block&id=4c84418a-01b4-4325-aaec-d2c799073868&cache=v2)
- 勾选
启用自动重新启动
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5a1ba17a-3249-4f55-9a15-e8042c47983a%2Feecbe857-5c1e-4f5c-90ea-bfd1f49d71df%2FUntitled.png?table=block&id=b88e60c6-7e4c-4dbd-8c68-54b9833e661d&cache=v2)
下一步
,设置网络为host,命令为tunnel --no-autoupdate run --token <复制的token>
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5a1ba17a-3249-4f55-9a15-e8042c47983a%2F2b15e8d8-c5a1-489d-a840-0d53d8d8d172%2FUntitled.png?table=block&id=0cc8f11f-f152-4664-8945-3c2bc915a51d&cache=v2)
- 下一步启动即可,此时返回cloudflare 的tunnel 页面,应该可以看到 连接状态为 HEALTHY,说明链接成功。
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5a1ba17a-3249-4f55-9a15-e8042c47983a%2Fef7bc5ea-5f6b-4ec3-8bbd-2254668dfce2%2FUntitled.png?table=block&id=e0c90d4f-4d20-4624-8bd7-71afcb163f3f&cache=v2)
配置内网服务域名
需要有一个域名,这样所有的内网服务都可以配置一个域名,cloudflare提供了https证书,很方便。
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5a1ba17a-3249-4f55-9a15-e8042c47983a%2Ff7af7a69-d2f5-437b-b4df-443fc6e36376%2FUntitled.png?table=block&id=47fe59aa-57f0-4384-89ba-73b4a6ef9bba&cache=v2)
先确定群晖上的服务类型和端口是什么,如HTTP、HTTPS、TCP、SSH、SMB、RDP等,不确定的话可以在群晖的
控制面板
- 信息中心
-服务
中查看当前的服务的端口信息。然后在cloudflare 上配置想要映射到公网的服务的相应的
Public hostnames
和对应的Service
。强烈建议先阅读下官方的文档。
Web服务
理论上支持所有的HTTP服务,群晖的内部服务或Docker安装的服务
如群晖 DiskStation Manager (登录页)使用了5000 端口,服务类型是HTTP,在新建的tunnel
nas
中新增一条public hostname
,配置如下![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5a1ba17a-3249-4f55-9a15-e8042c47983a%2Ffd460791-af9b-4fbb-9f0f-40feb5dfa964%2FUntitled.png?table=block&id=6d46f391-4a84-4165-bf7c-044daf47dcac&cache=v2)
保存后,浏览器打开刚设置好
public hostname
,输入用户名和密码,现在你可以通过浏览器
公网访问到家中的nas了,并且可以管理群晖的内部服务如Photo、Drive、Download Station 等。 IOS端的应用如
群晖管家
、群晖Photo
、群晖Drive
也通过支持此域名进行登录。如果是其他的HTTP服务,比如你安装了Aria2 或 Transimission 的WebUI服务,或者是WEBDAV server也可以按照这种方式配置,选择服务类型为 HTTP,URL 为 localhost:<端口号>即可。
TCP 服务
TCP类型的服务,需要在
客户端侧安装cloudflared 服务/或Warp
,然后才能通过域名访问。Synology Drive Client
群晖Drive(Synology Drive) 使用了
6690
端口,协议为TCP
,Public Hostname
设置如下![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5a1ba17a-3249-4f55-9a15-e8042c47983a%2F3c11f451-cc71-4444-aa32-cff219e7c2d2%2FUntitled.png?table=block&id=1ca1d193-c581-4dad-8d54-2c2dce1e59ea&cache=v2)
网上有很多关于群晖Drive Client搭配cloudflare tunnel的教程,但都试过了客户端均提示无法连接。查看了下cloudflare 的官方文档后发现,对于TCP协议的服务,需要进行额外的操作,以Mac 为例,安装cloudflared,然后开启服务。
此时打开Synology Drive Client 客户端,按照下面填写127.0.0.1:6690,用户名和密码,连接即可。
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5a1ba17a-3249-4f55-9a15-e8042c47983a%2F758660cb-1626-4578-8510-00edd2a54b5b%2FUntitled.png?table=block&id=d9560d91-3f94-45a2-a78f-5991012cb40b&cache=v2)
SSH服务
SSH服务默认端口为22,cloudflare 特别支持了SSH协议,可以参考文档配置,Public hostname 参数配置如下
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5a1ba17a-3249-4f55-9a15-e8042c47983a%2Fdbe8c4c6-fbae-40f6-b4d0-d7c4abfc1bb1%2FUntitled.png?table=block&id=8b4fa5f3-fb9f-4eba-ab4a-91a754d7fa41&cache=v2)
同样的,在Mac下安装cloudflared ,通过运行
vim ~/.ssh/config
编辑ssh的配置文件。然后就可以通过 ssh username@<配置的hostname> 进行远程ssh 进Nas了
SMB服务
SMB服务默认端口为445,配置不多赘述,如下
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F5a1ba17a-3249-4f55-9a15-e8042c47983a%2Fd78ad2cd-0168-4bf0-9732-bcc0bc4020c0%2FUntitled.png?table=block&id=786526e9-1c73-4ffe-9afe-a3d6da6707ac&cache=v2)
同样的,在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.2ssh 进入路由器,先下载cloudflared
然后设置开机自启服务文件
编辑脚本 vim /etc/init.d/cloudflared
运行并设置开机自启
查看日志和进程是否运行
打开
<设置的public host>
即可公网访问家里的路由器管理页面。使用体验
当然,cloudflare 支持的平台很多,你也可以在内网的机器上安装对应平台的cloudflared 程序。 然后参数的配置可以参考上面。
cloudflare 虽然提供了免费的tunnel,但是访问速度不是太快,大约有20Mb,日常使用没什么问题,我用cloudflare tunnel 设置了 ssh、smb、webdav、Synology Drive、群晖门户、Openwrt路由器等服务的公网域名,目前使用感觉还不错,推荐使用。