Featured image of post Cloudflare的使用

Cloudflare的使用

全球网络离不开Cloudflare,就像这样:

Cloudflare的重要性

托管域名

在 Cloudflare 添加站点

  1. 登录并添加站点:登录 Cloudflare 控制台,点击“添加站点”,输入完整域名(如example.com,然后点击 “继续”
  2. 选择套餐:在套餐选择页面,选择最下方的 “免费计划”(Free),然后点击 “继续”。
  3. 扫描DNS记录:Cloudflare 会自动扫描你域名当前的 DNS 记录。请仔细核对,确保重要的记录(如你之前设置的ACNAME等)都已正确列出。确认无误后,点击 “继续”。
  4. 获取 Cloudflare 的域名服务器(NS):这是最关键的一步。Cloudflare 会为你分配两个专属的域名服务器地址。请务必复制并保存好这两个地址,它们通常长这样:kate.ns.cloudflare.commatias.ns.cloudflare.com

修改 NS 记录

这一步需要回到你购买域名的网站(如阿里云、Namecheap、GoDaddy 等)的后台进行操作。

在阿里云操作(示例):

  1. 登录阿里云控制台,进入“域名”列表。
  2. 找到你的域名,点击“管理”。
  3. 在页面中找到“DNS 修改”或“修改域名服务器”选项。
  4. 选择“自定义 DNS”,将第一步中从 Cloudflare 复制的两个 NS 地址粘贴进去,然后点击“提交”。
  5. 通用原则:无论你在哪个平台购买域名,核心操作都是找到域名的 DNS 管理 或 Nameserver 设置,然后替换成 Cloudflare 提供的那两个地址。

等待生效并验证

  1. 修改完 NS 记录后,回到 Cloudflare 的域名设置页面,点击 “立即检查名称服务器” 或 “完成,检查名称服务器” 按钮。
  2. 域名服务器更改通常需要几分钟到几小时才能全球生效。快的几分钟就会生效,最慢可能需要 24-48 小时。生效后,Cloudflare 面板中域名的状态会变为“有效”(Active),此时托管就成功了。

DNS记录

Cloudflare Tunnel

Cloudflare Tunnel 是目前最良心的免费内网穿透方案之一:不需要公网 IP,不限制流量,还能自动配好 HTTPS 证书。

它的核心原理是在你的电脑和 Cloudflare 边缘节点之间建立一个安全的加密隧道,别人通过你的域名访问时,流量就会通过这个隧道安全地传到本地。

准备工作

  1. 一个托管到 Cloudflare 的域名
  2. 一个完整Linux系统(WSL应该不行)

配置步骤

安装 cloudflared

根据 Linux 发行版选择安装方式,以 Ubuntu 为例

1
2
3
4
5
6
7
# 1. 添加 Cloudflare 的 GPG 密钥和软件源
sudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared any main' | sudo tee /etc/apt/sources.list.d/cloudflared.list

# 2. 更新源并安装
sudo apt-get update && sudo apt-get install cloudflared

认证并连接到域名

执行以下命令,终端会输出一个链接。在电脑上打开链接,选择你的 Cloudflare 账号和要使用的域名,完成授权:

1
cloudflared tunnel login

这一步会在你的 ~/.cloudflared/ 目录下生成一个 cert.pem 证书文件。

创建隧道

给你的隧道起一个有意义的名字,比如my-tunnel,然后在终端执行命令:

1
cloudflared tunnel create my-tunnel

命令执行成功后会生成一个.json凭证文件(如xxxx-xxxx-xxxx.json),请务必保管好它。

配置隧道

创建配置文件~/.cloudflared/config.yml

1
nano ~/.cloudflared/config.yml

nano也可以替换为vim等常用文本编辑器

填入以下内容:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 你的隧道名称(与之前创建的一致)
tunnel: my-tunnel
# 你的隧道凭证文件路径
credentials-file: /home/你的用户名/.cloudflared/xxxx-xxxx-xxxx.json

ingress:
  # 你想要使用的域名,必须是在 Cloudflare 上托管的
  - hostname: your-domain.com
    # 你本地服务的地址,比如 8080 端口
    service: http://localhost:8080
  # 这是一个兜底规则,如果请求不匹配上面的域名,返回 404
  - service: http_status:404

绑定域名

执行下面的命令,将你的域名指向刚才创建的隧道:

1
cloudflared tunnel route dns my-tunnel your-domain.com

这个命令会自动在你的 Cloudflare DNS 面板中创建一条 CNAME 记录,无需手动操作。

Cloudflare DNS

运行隧道

前台运行(用于测试):

cloudflared tunnel run my-tunnel

将Tunnel注册为系统服务

cloudflared 服务在 Linux 下强制使用固定的配置文件路径:/etc/cloudflared/config.yml,之前配置文件均在用户目录下(/home/yourname/.cloudflare),因此需要进一步配置。

复制配置文件

1
2
3
4
5
6
# 创建系统配置目录
sudo mkdir -p /etc/cloudflared

# 复制你的配置文件和凭证文件到系统目录
sudo cp /home/rd806/.cloudflared/config.yml /etc/cloudflared/
sudo cp /home/rd806/.cloudflared/*.json /etc/cloudflared/

确认配置文件内容:检查一下/etc/cloudflared/config.yml里的路径是否正确

1
sudo cat /etc/cloudflared/config.yml

如果credentials-file指向的还是/home/yourname/.cloudflared/xxx.json,可以保留不变,因为服务能读取到那个路径。但为了稳妥,也可以改成/etc/cloudflared/xxx.json(前提是凭证文件已经复制过去)。

安装并启动服务

1
2
3
4
5
6
7
# 安装cloudflared 系统服务
sudo cloudflared service install

# 启动系统服务
sudo systemctl start cloudflared
sudo systemctl enable cloudflared
sudo systemctl status cloudflared
网站总访客数:Loading

使用 Hugo 构建
主题 StackJimmy 设计