开始

最近这段时间很懒,不过还是研究出了点东西,大家一定对于内网穿透还是有需求的,我之前就有一直在研究cloudflare的免费内网穿透,不过一直没用到我的nas上,我的nas是绿联的dx4600,可以使用docker,今天我们要用到docker去安装cloudflared来进行内网穿透

cloudflare操作

这里你需要有一个cloudflare账户,没有可以去注册,然后需要你有一个域名来进行内网穿透,买一个即可,买完后把域名转移到cloudflare中就可以了,如下图所示,两个位置都可以添加站点,然后输入你的域名,选择免费计划就可以了,dns相关的可以先不用管,最主要的是更改你的nameservers,也就是名称服务器,按要求回到域名提供商那里修改nameservers就可以了,将域名的nameservers改为分配的 cloudflare的名称服务器

上面步骤弄好后你的域名就被转移到cloudflare托管了,你需要在 Zero Trust 上创建隧道。在左侧菜单中找到 Zero Trust

接下来去新页面找到左侧的 Access,展开后点击 Tunnels,名字随便起都ok,随你心意就可,方案选择免费

这里可能需要你绑定支付方式,我绑定的paypal,paypal上我绑定了一张我的银联的卡,没有paypal的话大家可以去注册一个,很简单,本文不再赘述

接下来去access-tunnels,选择create a tunnel,创建的名字无所谓,随心即可

这时你就创建好了tunnels,接下来在下图页面点击docker,记住下面的命令行,其中的token后面要用到

nas上的操作

去我们的nas里面,docker上面搜索镜像zoeyvid/cloudflared,注意!是zoeyvid/cloudflared,而不是cloudflare/cloudflared!lastest版本即可

我们下载对应的镜像后,下载完后,重点来了

网络名称记得要选择host,其余的空间,端口什么的都不用动

然后在环境变量那里,增加环境变量:TUNNEL_TOKEN,这个token值就等于你前面cloudflare里面记下来的token的值,举例来说

如果你前面记下来的命令如下

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

那么你的token就是123456789,这里每个人tunnel token都不一样,以你自己的为准即可

然后就成功了,这里我解释一下,如果用cloudflare/cloudflared的镜像的话,你的这个容器就会无限重启,而且很麻烦,我这里用的zoeyvid/cloudflared的镜像配置起来比较简单,只需要配置token的环境变量即可

最后的配置

接下来就是添加ip和端口了

我们回到cloudflare的tunnels,来到如下图这个页面,添加一个公共hostname即可

接下来点击之后,就可以按你的需求添加内网穿透相关的东西了,域名就按你之前的来,subdomain就是你的子域名填写了,

如下图所示,我的本地nas地址是192.168.8.150,而http://192.168.8.150:1338这个是我的一个docker容器,我就在下图中这么配置,

填写完后,可能需要等待一会,之后就可以用你的这个域名来访问本地的对应地址了

结语

我使用的是绿联的dx4600,其他机型我没有测试过,至少这台机器上面我运行成功了,大家可以尝试一下