本文最后更新于 2024-06-28,文章内容可能已经过时。

大家好,这里是Cherry,喜爱折腾、捡垃圾、玩数码,热衷于分享NAS、docker玩耍经验~

前言

前几天发了一篇关于拾光坞N3内网穿透的教学,有很多小伙伴留言问能不能写写内网穿透的教程。正好手头把之前的DIY NAS放到办公室,于是便借机写一篇经典的cloudflare tunnel使用教程。

本教程除了教大家如何使用cloudflare tunnel实现免费的内网穿透和无端口访问NAS外,还提供了2种cloudflare 加速的方式,一则实现本地加速访问,二则实现互联网端的加速访问。

PS。本文需要注册cloudflare,具体方法不细说了,网上有很多,重点是需要一张双币卡才可以激活,全程0费用(域名不算),主打的就是一个白嫖!

目录
1、NAS部署cloudflare tunnel实现免端口内网穿透访问NAS
2、本地加速cloudflare 访问
3、公网加速cloudflare 访问(对外提供服务)


NSA端配置

登录cloudflare,首页选择左侧的【zero trust 】
image.png

选择【nerworks】——【Tunnels】——【Add a Tunnel】
image.png

默认第一个配置,选择下一步,然后随便去个tunnel的名字
image.png
image.png

在部署环境中选择docker,然后复制下方的部署代码
image.png

回到SSH页面,粘贴代码,然后稍微修改一下让容器持久化运行。在docker run 后面增加 -itd –name tunnel

🔻初始指令

docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token XXXXX

🔻修改后指令

docker run -itd --name tunnel cloudflare/cloudflared:latest tunnel --no-autoupdate run --token XXXXX

部署完成以后,点击save,来到配置公网访问环节,输入自定义的二级域名前缀以及自己的域名地址,然后配置服务如 http://NASip:5000
image.png

回到Cloudflare tunnel首页,可以看到绿色的【healthy】表示容器连接成功
image.png

二、强制https访问(可选)

由于我们使用了https,因此需要给服务器搭配上cf的SSL证书才可以使用,回到CF首页,选择我们解析的域名进入
image.png

选择左侧的【SSL/TLS】,选择【概述】,将加密类型选择最高的【灵活】,即可实现浏览器自动将http更改为https访问NAS。
image.png


客户端配置

一、优选CF,实现本地快速访问

众所周知,Cloudflare的网络在国内不能算很好,因此我们的客户端(也就是我们的电脑)需要通过公网访问Cloudfalre Tunel的话,还需要部署一套加速服务——CloudflareSpeedTest。

下载地址:https://github.com/XIU2/CloudflareSpeedTest/releases

image.png

下载解压后文件如下
image.png

双击【CloudflareST.exe】,等待运行,运行结束后会有一些IP地址出现
image.png

然后我们修改windows下的hosts文件(路径:C:\Windows\System32\drivers\etc\hosts),添加一条DNS解析即可。
image.png

🔻对优选CF前后的域名访问情况做一个测试

未设置前
image.png

设置后,可以看出延迟和丢包率大幅降低
image.png

二、SAAS回流,实现全网快速访问

使用cf优选仅仅实现的是我们本地快速访问NAS,那如果是对外提供服务的情况下呢?这时候就需要用到cloudflare的SAAS服务了。

设置新域名,并解析到国内CDN

【阿里云/腾讯云】端,添加一个二级域名【例:qnap2.cgakki.top】,因为一级域名解析在CF上了,所以会提示需要TXT验证,点击蓝字后到CloudFalre操作即可。
image.png

【Cloudflare端】,将txt验证中的信息填入对应的框体,域名不需要,只需要【主机记录】和【记录值】。
1718096231821.jpg
image.png

接着增加两条NS解析,分别解析到【ns1.alidns.com】和【ns2.alidns.com】
image.png

【阿里云/腾讯云】端,可以看到解析完成域名上方的DNS解析已经变绿色
image.png

设置SAAS,实现全网CF优选

【Cloudflare端】,选择【SSL/TLS】——【自定义主机名】开始SAAS服务,添加双币卡,免费开通。
image.png

【回退源】:这里填tunnel设置的域名
image.png

【自定义主机名】:这里填刚才我们设置的二级访问域名【例:qnap2.cgakki.top】,用来给其它人访问使用
image.png

回到【Tunnel】页面的【Public Hostname】设置,把新域名也解析到我们的NAS上,这样两个域名都可以访问我们的NAS了。
image.png

【阿里云/腾讯云】端,根据运营商线路不通,增加优选CF节点,然后把刚才的TXT解析放进来(需要注意的是主机记录最后有多余的域名后缀,需要删除,具体看图片)。

具体的全国CF优选IP可以看这个网站:https://stock.hostmonit.com/CloudFlareYes
image.png

使用ITDOG测试连接性

使用tunnel的域名
image.png

使用SAAS回流后的新域名
image.png