之前讲过SK的隧道穿透,虽然很方便,但是可能是突然用户激增,免费隧穿通道过不了多久就会被SK屏蔽掉
很多小伙伴家里各种原因获取不到公网IP,但是又想要长期稳定的免费隧道穿透,平时转发一下AriaNG、Calibre等等的,SK隧穿行不通;Zerotier、Tailscale 又需要VPN软件;frp、nps、ngrok 又需要公网Server端;貌似都不太方便
今天来讲一个不需要公网IP且可以长期免费的隧穿:Cloudflared
这个是通过iPad外网访问我刚刚做好的Heimdall个人导航网站(出于安全原因,我的域名已打码)
首先我们先注册一个域名,Freenom可以注册免费域名,但是好像最近不太稳定,官网点这里:A Name for Everyone
而且国内出了新政,2022年3月起所有域名都要实名认证,不然有可能会频繁掉线,所以这里我推荐大家上阿里云实名注册一个域名:https://www.aliyun.com/
用自己的支付宝或者淘宝账号登录阿里云之后
选择产品
选择域名注册
填上自己想要注册的域名地址,后面我都用.xyz这个域名作为例子举例,大家注册好自己的域名之后对号入座即可,挑选自己喜欢的后缀(我个人推荐挑个便宜的就行),比如这里我选6块钱一年的.xyz,加入清单并购买
初次购买需要你填写个人实名认证,这里你就按照网站的引导提示进行认证即可,实名认证一般一两个小时就审核完毕了
注册成功之后且实名认证完毕之后你会收到一封邮件,或者你可以打开域名控制台(搜索栏搜索:域名控制台,直接点第一个)
如图显示全部域名1即为实名认证完成,若在未实名认证域名1则为完成实名认证
实名认证完毕之后
我们登录Cloudflared注册一个账号并登录:
网络安全ddos防护_免费cdn加速_智能化云服务平台 | Cloudflare 中国官网
然后点添加站点
选择计划选免费开始使用
点继续
一般刚新注册的域名没有分配DNS或者是分配阿里云的万网DNS
这里我们不管,点继续
如果出现提示框,不管,点确认
然后来到这一页面,我们分别复制保存好这两个Cloudflare nameserver
我们回到阿里云的域名控制台
点击左侧的域名列表
点击我们刚刚购买的域名
选择DNS管理下的DNS修改按钮
点击右侧的修改DNS服务器
注意箭头指着的输入框位置
粘贴刚刚我们复制好的两个Cloudflare nameserver(添加第二个nameserver输入框点下方的添加DNS)
输入完之后千万不要忘了点确定!
然后回到Cloudflare,点完成
点开始使用
后面的选项一路点保存即可,最后点完成
DNS服务器配置成功了的话会出现这个绿勾勾
如果没出现也没关系,可能过一会就好了,我们不用管
接下来我们开始创建隧道穿透
点如图所示的返回按钮
选择Zero Trust
点击Access下的Tunnels
点Create a tunnel
选择Free
点Select plan
填入自己喜欢的隧穿名字
点save tunnel
保存好之后点击我们Tunnel名称右侧的复制按钮
复制的是我们的UUID,保存好备用
然后点击右侧的Configure
选择Docker,复制下面这串代码
这串代码里实际上有用的只有我红框框里打码的那串Token
我们编辑保存好这串Token,备用
然后点下方的Next
来到Public Hostname Page
Subdomain填
www
Domain(Required)选择
刚刚注册的域名(如.xyz)
Service(Required)选择
HTTP
://后面填
自己Nas的IP:自己想要映射的端口(如我想要映射刚做的Heimdall网页,端口是9010)
然后点Save hostname
接着我们进入群晖/极空间的Nas桌面
打开Docker,在仓库搜索
cloudflare/cloudflared
点击下载
双击打开以后来到文件夹路径
在根目录下新建一个Docker文件夹
在Docker文件夹里新建一个Cloudflared文件夹
路径选择Cloudflared文件夹
装载路径填
/etc/cloudflared
接着来到网络目录
将网络改为host
然后我们来到命令
命令选自定义,输入以下命令
‘tunnel’ ‘–config’ ‘/etc/cloudflared/config.yaml’ ‘–no-autoupdate’ ‘run’ ‘–token’ ‘这里替换刚刚复制备用的Token’
(例子,如:’tunnel’ ‘–config’ ‘/etc/cloudflared/config.yaml’ ‘–no-autoupdate’ ‘run’ ‘–token’ ‘eyJhIjoiZTM0YmI4MWQwZDFhMzk4MTE4YjhjNjfwafhaffsadklCJ0IjoiNTc4ZDZmY2UtZTliYi516fewaf453aFiMWQtNWZjOWM4NzA0wfaiofejalkf6IlltRXdOMk0yTnpVdE5EazfawefjlksfiaxXRmhObVV0WmpreE1UQTJNVFV3TWprMSJ9’ )
然后点应用
等待一分钟容器创建完毕后,我们在浏览器输入我们注册好的域名
即可成功登录我们隧道穿透的端口了(我这里仅用Heimdall导航网站做演示)
手机的4G外网网络下登录我们的域名
也是成功打开的
有的小伙伴可能会问,如果我想穿透不止一个端口那怎么办,其实特别简单,只需要再加一条隧道穿透规则,修改我们已有域名前面的子域名即可,操作如下
打开我们的隧道穿透Cloudflare Zero Trust
选择Access下的Tunnels
点击Configure今日我们已经创建好的穿透隧道
选择上方第二栏
Public Hostname
点击进入后点击右侧的
Add a public hostname
这时候我们的Subdomain子域名可以填
跟我们第一个子域名www不一样的子域名,这里我举个例,填写
wwa
Domain(Required)选择
刚刚注册的域名(如.xyz)
Service(Required)选择
HTTP
://后面填
自己Nas的IP:自己想要映射的端口(如我想要映射我的Qbittorrent,端口是8989)
然后点Save hostname
测试在外网环境下浏览器输入wwa.自己的域名
顺利的打开了我内网的Qbittorrent
而且我们的穿透不局限于Nas上的端口或者是网段,即使是其他设备的端口或者是同一局域网下的其他网段,也是可以进行穿透的,比如说我家光猫是192.168.1.1,Z4是192.168.124.18,而群晖是192.168.124.4,都可以通过不同的子域名将他们穿透到外网上
我们可以设置无限个子域名和对应的网段,将家里的所有设备映射到各个子域名上