本教程可以说是内网穿透教程,但也适用于域名免备案解析国内服务器教程,它的工作原理是将数据发送至cloudflare服务器,再将数据通过域名接收。
准备工作
1、注册一个cloudflare.com的账号,账号添加一个域名,并更改cloudflare所提示的DNS,等待cloudflare生效
2、linux系统 arm、arm64、x86、amd64平台都可以
3、简单的Linux基础(会用简单命令即可)
满足以上条件即可进行
开始部署
1.下载程序到设备
wget https://ghproxy.com/https://github.com/cloudflare/cloudflared/releases/download/2022.5.1/cloudflared-linux-arm -O /usr/bin/cloudflared
这边使用arm设备举例子,如果是amd64设备,请把上面的arm修改为amd64
2.在终端输入 #非root用户请在前面加上 sudo
chmod -R 0777 /usr/bin/cloudflared
cloudflared login
此时终端会显示一个https:// 的网址,复制到浏览器打开,登录自己的cloudflare账号,选择要绑定的域名,并获取自动下载的授权文件
3.创建隧道
例如
cloudflared tunnel create abc #abc 是你创建的隧道名称,记好,后面要用,这个名称可自定义
得到隧道的id
4.自制配置文件config.yml
进入路径/etc/cloudflared,添加文件config.yml
修改config.yml
例如:
tunnel: 275fe7bb-5948-45a0-bda7-30da7d154ddf
credentials-file: /root/.cloudflared/275fe7bb-5948-45a0-bda7-30da7d154ddf.json
ingress:
- hostname: cloud.susxnb.cn
service: http://127.0.0.1
- service: http_status:404
上面 hostname后面的 cloud.susxnb.cn 中 cloud是二级域名名称,susxnb.cn 是顶级域名(也就是你在cloudflared关联的域名)
service: http://127.0.0.1 这是外网https穿透访问的页面地址,可加端口如http://127.0.0.1:88 (请先保证此页面在内网中http可访问)
5.配置DNS
cloudflared tunnel route dns 隧道名称 想要绑定到的域名或其二级域名
例如:cloudflared tunnel route dns abc cloud.susxnb.cn
此时在cloudflare的域名DNS管理里面,你会发现这个域名被设置了一个指向 [UUID].cfargotunnel.com 的 CNAME 记录,并且通过 Cloudflare 进行代理。
6.运行自启动安装
cloudflared service install
运行自启动安装
systemctl start cloudflared
启动服务
systemctl status cloudflared
查看运行状态 可随时ctrl + c 中止。
7.常用命令
启动: systemctl start cloudflared
关闭: systemctl stop cloudflared
状态: systemctl status cloudflared
重启: systemctl restart cloudflared