前言

cloudflare tunnel是cloudflare推出的免费内网穿透项目,可建站,无需备案
当然→_→,众所周知,cloudflare的默认节点对国内用户不是很友好?

使用cloudflare

首先你需要有一个域名,并ns解析到cloudflare

开启Zero Trust

不得不吐槽一句这个名字——“零信任”??

登录cloudflare控制台

在侧栏找到"Zero Trust",点击进入
Screenshot_20220805_095153.jpg

登录Zero Trust

点击进入
Screenshot_20220805_100027.jpg
点击Next
输入team name,此处随意,反正也没人会用这又长又臭的域名吧(bushi)
点击Next
下一步选择Bundles
无脑选free就行Screenshot_20220805_100444.jpg
Screenshot_20220805_100611.jpg
搞定!进入面板
在侧栏找到"Access",在"Access"下找到"Tunnels"
Screenshot_20220805_095337_edit_495179222882774.jpg
进入Create your first tunnel页面
点击create a tunnel
然后输入tunnel的名字(随便填,这里无所谓)
点击save tunnel
接着安装connecter
选择合适的系统以及对应架构,按照提示安装好然后就不用管这个tunnel了
直接回到tunnels的主界面,将这个tunnels删除

开始使用

回到已经安装好cloudflared的机器内

cloudflared tunnel login

接着会输出一个链接,复制链接用浏览器登录(windows会自动弹出页面),选择域名,并授权
1630624941698809 (1)_edit_496671978337234.png
回到命令行

cloudflared tunnel create <Tunnel-NAME> #<Tunnel-NAME>可以随便填,自己记住就好
cloudflared tunnel route dns <Tunnel-NAME> <DOMAIN>
# <Tunnel-NAME> 即为上条命令中的<Tunnel-NAME>  <DOMAIN>即为自定义域名,根据自己域名选择 eg:blog.example.com

这时候就可以了,cloudflare已经自动帮你设置了CNAME解析

写入配置文件

cloudflare的默认目录为/root/.cloudflared
不在默认目录也没关系

写入config.yml

tunnel: <Tunnel-UUID>
credentials-file: /root/.cloudflared/<Tunnel-UUID>.json
protocol: http2
originRequest:
  connectTimeout: 30s
  noTLSVerify: false
ingress:
  - hostname: <DOMAIN>
    service: http://127.0.0.1:80
  - hostname:<DOMAIN> 
    service: http://127.0.0.1:888
  - service: http_status:404

需要自行修改的地方为 (在cloudflared tunnel route dns <Tunnel-NAME> <DOMAIN>时输出中会显示)以及service
保存后退出


这里的hostname和service可以自行添加多个
但是请注意每个hostname和service都需要按照格式填写,并且每添加一个,需要运行一次cloudflared tunnel route dns <Tunnel-NAME> <DOMAIN>

cloudflared --config /root/.cloudflared/config.yml tunnel run
#config.yml填写config的绝对路径

在浏览器访问即可
示例