Cloudflare Tunnel(原Argo Tunnel)是一种无需公网IP、无需配置路由器端口转发即可实现内网穿透的工具。通过Docker容器化部署,可以快速将NAS或其他本地服务暴露到公网,并通过Cloudflare的安全网关访问。
前置条件
1.购买或获取2个可托管cf的免费域名(免费可托管二级域名:ggff.net、qzz.io,如何白嫖自行搜索
本次教程用到的域名为:xxx.xyz(辅助域名)和xxx.com(主域名)
2.注册Cloudflare账号
- 访问 Cloudflare控制台 并完成注册,注册教程自行搜索。
- 在Cloudflare添加两个域名(主域名和辅助域名),并都完成托管至Cloudflare,托管流程就一笔带过了,自行搜索。
ps:解释主域名和辅助域名的用途,主域名是通过优选ip优化后的域名,辅助域名是经过cloudflare中转,但是未通过优选ip优化。
1. 创建Cloudflare Tunnel
Cloudflare主界面点击Zero Trust进入Zero Trust面板
Zero Trust面板:
Zero Trust → 网络 → Tunnels
点击 创建隧道点击 选择Cloudflare
输入隧道名称(如
nas-tunnel
),点击保存随便选一个复制,然后提取生成的 Tunnel Token(如
eyJhIjoi开头...
的长字符串),先自己保存记录下来等下compose配置会用到。继续点右下角下一步,点击「Plublic Hostname-公共主机名」并点击「Add a public hostname-添加公共主机名」,按照下面配置主域名和辅助域名都指向你的本地ip+端口。
ps: 添加两条公共主机名,子域填写nas,域选择托管的域名xxx.xyz或xxx.com,服务-类型选http,URL填写nas本地ip和访问端口
2.NAS Docker Compose配置文件
services:
cloudflared:
image: cloudflare/cloudflared
container_name: cloudflared #这里自定义容器名
restart: always
network_mode: host
command: tunnel --no-autoupdate run --protocol http2 --token #这里填入自己的token即可
环境变量里添加:–token 这里对应的值就是前面token的内容,网络选择host,存储空间不需要选,配置后运行容器即可。
3.优选IP配置
为了方便大家理解这里配置,上面已经定义访问nas的主域名为nas.xxx.com,辅助域名为nas.xxx.xyz,也就是上图Tunnel设置的公共主机名。
1、从Cloudflare切换至主域名界面,并点击左侧的DNS-记录,将自动生成的DNS记录删掉。
2、切换辅助域名界面,并点击左侧的SSL/TLS—自定义主机名,第一次需要添加一个账单,使用paypal认证,回退源填写在Tunnel设置的辅助域名的地址,比如nas.xxx.xyz。
3、自定义主机名,则填写在Tunnel设置的主域名地址,比如nas.xxx.com。此时自定义主机名里会新增你刚刚添加的主域名地址,但是主机状态会显示待定或初始化。
4、将自定义主机名——依次证书状态和主机名状态的名称和值复制、保存。
5、Cloudflare切换到主域名界面,点击左侧DNS,点击添加2条记录,类型都为TXT,将上一步的证书状态和主机名状态的名称和值粘贴过来,然后保存等2分钟刷新一下第5步的网页自定义主机名的主机名状态就会生效成功。
6、切换辅助域名界面-DNS,添加一条记录,类型为CNAME,名称为cdn,内容为优选IP(我使用的是 cloudflare.182682.xyz),代理状态设置为关闭(关闭小黄云)。
7、最后切换主域名界面-DNS,添加一条记录,类型为CNAME,名称为nas,内容为上面设置cdn辅助域名(cdn.xxx.xyz),代理状态设置为关闭(关闭小黄云),优选ip配置到此完成,打开主域名nas.xxx.com即可访问。
8、验证优化的速度,网站测速_网站速度诊断_HTTP速度测速_WEB速度测试_CDN测速_API测速_多线路速度测试_多地区速度测试