因为重点是讲Cloudflare Tunnel项目的配置过程,所以,这里我就省略了WEB环境配置和网站搭建过程,小白请自行在网络上面去搜索方法。
文章目录
配置教程:
安装配置 CloudFlare
安装 CloudFlare
因为 GitHub 国内无法访问,若是你不能正常的使用下面的命令,我们可以 访问这个地址 获取代理地址
在 https://github.com 前面加上 代理地址 例如:https://ghfast.top/https://github.com/***
# 因为 GitHub 国内无法访问,若是上面的命令无法访问,请看视频操作
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
dpkg -i cloudflared-linux-amd64.deb
# 验证 cloudflare 版本,显示版本号,证明安装成功
cloudflared --version
CloudFlare 认证
执行下面命令,并复制登录地址,用浏览器打开,选择相关域名,授权
cloudflared login
授权后会在 /root/.cloudflared/ 下生成 cert.pem 认证文件,以下图片为成功的提示!
创建 Tunnel
以下命令中的 abc-xyz 改为你需要的项目名字,推荐使用域名,把 . 改为 -,英文符号!!!!!
cloudflared tunnel create abc-xyz
执行成功以后,如上图。会在 /root/.cloudflared 下,生成图中红色的 .json 文件,我们需要对其改名为 abc-xyz.json (就是上一步的项目名字)
设置 DNS 解析
依次执行下面的命令,创建博客所需域名的解析,若是不需要多个域名访问,请看视频的解释!
# 命令中的 abc-xyz ,是刚才创建的 tunnel 的项目名字,请自行修改
cloudflared tunnel route dns abc-xyz abc.xyz
cloudflared tunnel route dns abc-xyz www.abc.xyz
执行成功以后会提示如上图,并在域名的 DNS 中自动创建相关的 CNAME 解析,如下图:
配置 ingress 路由
在 /root/.cloudflared 下创建文件: config.yml ,填入以下内容
# tunnel 后面为刚才设置的 Tunnel 的项目名字
# credentials-file 后面为刚才修改的 json 文件绝对路径
# 两个 hostname 后面的域名为你的域名
# 其中的 IP 地址为安装宝塔机器的 IP 地址,端口不能丢
tunnel: abc-xyz
credentials-file: /root/.cloudflared/abc-xyz.json
ingress:
- hostname: www.abc.xyz
service: http://192.168.2.5:80
- hostname: abc.xyz
service: http://192.168.2.5:80
- service: http_status:404
设置 CloudFlare 启动和自启
# 安装 cloudflared 服务
cloudflared service install
# cloudflared 开机启动
systemctl enable cloudflared
# cloudflared 重新启动
systemctl restart cloudflared
启用 HTTPS 强制访问
在域名的 SSL/TLS 中,找到边缘证书,开启 始终使用 HTTPS
到这里,我们的 CloudFlare 就已经全部配置完毕了
访问并配置博客
现在,我们可以通过我们的域名来访问我们的博客了。
后记
我们来说说很多人关于安全问题的顾虑,Zero Trust 是零信任接入
零信任的三大核心原则:
1.默认不信任(Never trust)
所有请求都要验证身份,不管你是员工、设备、脚本。
2.强制验证(Always verify)
每一次访问,都必须身份认证 + 权限校验。
3.最小权限访问(Least privilege)
谁只能访问他该访问的服务,其他一律禁止。
Cloudflare Tunnel 是 Cloudflare Zero Trust 体系下的核心服务
它的本质是:“由内向外发起连接,Cloudflare 不会入侵或探测你本地网络”
没有公网 IP、没有端口暴露、不使用传统防火墙端口穿透
这就是 Zero Trust 的最直接体现:默认所有网络请求不可信,必须通过可信入口发起并受控调度。
所以,不是你网站代码有 IP 的故意暴露,或是网站程序存在远程读取漏洞,哪怕是 Cloudflare 工作人员和他人泄密,也不会暴露你的 IP。
因为 Cloudflare Tunnel + Zero Trust 架构,不会因为 Cloudflare 员工或外部泄密而暴露你的源站 IP,除非你自己在页面或 DNS 设置中泄露了它。
最后,博主祝愿大家玩的愉快!最后附上其他的命令(不用的项目请及时删除,不要存在重复名字的项目)
删除Cloudflare Tunnel项目命令:
# 关闭本地的 cloudflared tunnel
systemctl stop cloudflared
# 查看 Cloudflare Tunnel 列表
cloudflared tunnel list
# 删除相关的项目 abc-xyz 为项目名字
cloudflared tunnel delete abc-xyz
评论