本教程可以说是内网穿透教程,但也适用于域名免备案解析国内服务器教程,它的工作原理是将数据发送至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