Cloudflare 免费隧道穿透内网群晖无需端口、公网IP、服务器

今天给大家分享一个使用 Cloudflare 搭建免费隧道穿透内网,不需要公网IP、服务器,只需要一个 Cloudfare 账号,一个域名即可搭建免费的内网穿透。这个 Cloudflare 方案目前来说相对完美。如果 Cloudflare 不出幺蛾子,理论上可以永久使用。如果你家里没有公网IP,没有也不打算购买服务器完全符合你的预期。最主要的是网页免端口;

Cloudfare 的账号注册简单,你还需要一个域名并且可以解析。目前国内的要求是注册域名必须要通过实名认证,不需要备案。阿里、腾讯都可以。

0x01 注册账户

登录到 Cloudflare 官网注册账户,如果你已经有了账户选择登录;

modb_20220702_17ddcd64-f9be-11ec-a164-38f9d3cd240d

0x02 添加站点

登录到 Cloudflare 选择左侧的网站,然后添加站点;

modb_20220702_17f21602-f9be-11ec-a164-38f9d3cd240d

0x03 输入域名

输入你的域名,然后点击添加站点;

modb_20220702_17fe2956-f9be-11ec-a164-38f9d3cd240d

0x04 选择计划

Cloudflare 提供了多种方案,当然是选择免费的方案,如果你是土豪除外,点击开始使用;

modb_20220702_180bd09c-f9be-11ec-a164-38f9d3cd240d

0x05 检查记录

Cloudflare 会检查域名的 DNS 记录,等待即可;

modb_20220702_181f9e74-f9be-11ec-a164-38f9d3cd240d

是新添加的域名,所以没有任何的解析记录,点击继续;

modb_20220702_18369e9e-f9be-11ec-a164-38f9d3cd240d

提示没有 DNS 记录无法激活 Cloudflare 站点,暂时先不添加 DNS 记录,点击确认;

modb_20220702_1843b124-f9be-11ec-a164-38f9d3cd240d

这一步就需要我们登录到购买的域名控制面板将域名的默认 DNS 更改为 Cloudflare 的 DNS;

modb_20220702_185bed7a-f9be-11ec-a164-38f9d3cd240d

点击跳过建议;

modb_20220702_186bc862-f9be-11ec-a164-38f9d3cd240d

检测到我的域名在阿里,需要将阿里的 DNS 删除添加 Cloudflare 的 DNS,需要删除的 DNS 和需要增加 DNS 都给了,只需要登录域名控制台 DNS 修改替换即可;

modb_20220702_187cab46-f9be-11ec-a164-38f9d3cd240d

0x06 修改 DNS

登录到阿里云的域名管理控制台,DNS 修改,删除阿里的 DNS 添加 Cloudflare 的 DNS,这里多说一下,虽然阿里可以添加多个 DNS 但是这里一定要删除阿里的 DNS 只保留 Cloudflare 的 DNS 否则无法激活添加的站点;

modb_20220702_189222a0-f9be-11ec-a164-38f9d3cd240d

0x07 激活站点

当在域名控制台将 DNS 修改为 Cloudflare 的 DNS 后可以在 Cloudflare 的控制台概述看到,域名转移完成,同时也会收到一封邮件提示站点激活完成。

modb_20220702_18a03a34-f9be-11ec-a164-38f9d3cd240d

如果出现以下提示,说明站点还没有激活,可以继续进入下一步操作等待 DNS 生效,生效时间最长48小时,耐心等待即可;

modb_20220702_18af7cba-f9be-11ec-a164-38f9d3cd240d

0x08 创建隧道

在 Cloudflare 站点管理面板点击 Zero Trust 跳转到新窗口创建穿透隧道;

modb_20220702_18c0f1de-f9be-11ec-a164-38f9d3cd240d

在 Zero Trust 面板点击 Access,Turst;

modb_20220702_18dccc74-f9be-11ec-a164-38f9d3cd240d

点击 Create tunnel (创建隧道)

modb_20220702_18f9ad94-f9be-11ec-a164-38f9d3cd240d

输入隧道的名称,然后点击 Save tunnel;

modb_20220702_191219e2-f9be-11ec-a164-38f9d3cd240d

0x09 配置隧道

点击 Docker 复制生成的 Docker token 令牌,后续需要用到的只有下图红色框内的内容;

modb_20220702_192719be-f9be-11ec-a164-38f9d3cd240d

0x10 创建主机

创建隧道主机,设置主机名和内网地址;
Subdomain 填写你主机名。举例:我的这个隧道用于群晖 NAS 所以我设置了 nas;
Domain 选择添加的站点域名,如果添加了多个站点,这里可以选择;
Path 没有特殊需求留空;
Service 选择 http 如果你有 https 证书并且设置好了证书可以选择 https 后面选择内网的地址,如下图中的这个内网地址就是我群晖 nas 内网访问的 http 地址;
最后设置成功了,就可以使用 nas.itquan.cc 直接访问内网的群晖;

modb_20220702_1938fb2a-f9be-11ec-a164-38f9d3cd240d

如下图,我创建了两个地址,第一个是群晖 NAS;第二个是我的路由器。我可以使用这两个地址在任何地方访问我内网的群晖和路由器;

至此我们在 Cloudflare 创建了站点,在 Zero Trust 中创建了穿透隧道,现在还不能直接使用上述设置的地址来访问。还需要在NAS中配置隧道的客户端;这和 FRP 的设置类似分为服务端和客户端;Zero Trust 就属于服务端,群晖中在部署个客户端;

modb_20220702_194b2606-f9be-11ec-a164-38f9d3cd240d

0x11 安装套件

登录到群晖的套件中心,搜索 docker 并安装这个套件;

modb_20220702_196778e2-f9be-11ec-a164-38f9d3cd240d

0x12 下载映像

打开 Docker 的管理面板,选择注册表,搜索 cloudflare/cloudflared 这个映像;

modb_20220702_1983f986-f9be-11ec-a164-38f9d3cd240d

在搜索结果中右键选择下载此映像;

modb_20220702_19a0d45c-f9be-11ec-a164-38f9d3cd240d

在弹出的标签选择 latest (最新的)虽然下拉会有很多标签,选择最新的就没错;

modb_20220702_19c011c8-f9be-11ec-a164-38f9d3cd240d

等待下载完成;

modb_20220702_19dc9f64-f9be-11ec-a164-38f9d3cd240d

0x13 创建容器

在 Docker 的管理面板选择容器,点击新增;

modb_20220702_19fb1412-f9be-11ec-a164-38f9d3cd240d

选择刚才下载的 cloudflare/cloudflared 这个映像;

modb_20220702_1a1bfa1a-f9be-11ec-a164-38f9d3cd240d

网络,选择使用与 Docker Host 相同的网络;

modb_20220702_1a496df6-f9be-11ec-a164-38f9d3cd240d

常规设置,可以设置执行容器的权限,容器使用资源的限制。选择高级设置;

modb_20220702_1a7b8f8e-f9be-11ec-a164-38f9d3cd240d

在高级设置中,选择执行命令将以下启动命令中的 token 修改为你自己的 token 粘贴进入即可;就是在 0x09 步骤中的 token;

  1. 'tunnel' '--config' '/etc/cloudflared/config.yaml' '--no-autoupdate' 'run' '--token' '你自己的token粘贴替换这行'
modb_20220702_1a9ca246-f9be-11ec-a164-38f9d3cd240d

命令粘贴完毕后点击保存;

modb_20220702_1ab466a6-f9be-11ec-a164-38f9d3cd240d

常规设置中点击下一步;

modb_20220702_1ad496a6-f9be-11ec-a164-38f9d3cd240d

存储空间设置,选择添加文件夹;

modb_20220702_1b03bd3c-f9be-11ec-a164-38f9d3cd240d

如果没有 docker 和 Cloudflared 这两个目录就先创建一个 docker 目录,然后再 docker 目录下再创建一个 Cloudflare 目录,然后选择 Cloudflare 目录;

modb_20220702_1b1b7382-f9be-11ec-a164-38f9d3cd240d

装载路径,填写 /etc/cloudflared

modb_20220702_1b3f379a-f9be-11ec-a164-38f9d3cd240d

勾选向导完成后运行此容器,点击完成;

modb_20220702_1b560d4e-f9be-11ec-a164-38f9d3cd240d

此时在 Docker 的管理面板已经看到容器已经运行,右键选择详情可以查看容器的详细设置;

modb_20220702_1b76f52c-f9be-11ec-a164-38f9d3cd240d

Docker 运行容器详情;

modb_20220702_1b92566e-f9be-11ec-a164-38f9d3cd240d

0x14 确认隧道

经过以上步骤,如果不出现什么意外应该是可以直接使用 nas.itquan.cc 来访问内网的群晖NAS了;最后在 Zero trust 管理面板查看确认隧道已经建立,可以看到 Status 状态为 Active、Origin IP 已经获取到了(我是有动态的公网IP)

modb_20220702_1baea684-f9be-11ec-a164-38f9d3cd240d

0x15 访问测试

使用浏览器直接输入访问测试,虽然有点慢但是还能接受。最后使用手机4G 和 DS File APP访问都可以;在使用 DS File 设置地址时需要加入80端口,直接填写地址无法访问;

以下服务均部署在内网:
黑群晖:https://nas.itquan.cc
WP网站:https://www.itquan.cc
NextCloud 网盘:https://pan.itquan.cc

modb_20220702_1bcfe89e-f9be-11ec-a164-38f9d3cd240d
modb_20220702_1c1b086a-f9be-11ec-a164-38f9d3cd240d
modb_20220702_1c4025fa-f9be-11ec-a164-38f9d3cd240d

Related Post

发表回复