冬眠的笔记
首页文章分类书单项目关于
冬眠
X

© 2026 冬眠的笔记 · 用文字记录思考,用思考改变生活

首页>文章>个人开发
CloudflareTunnelDNS反向代理

Cloudflare Tunnel 安装配置

记录 Cloudflare Tunnel 的安装、登录、创建 Tunnel、配置 ingress、绑定 DNS 以及 systemd 托管的完整流程

冬眠
冬眠
专注于技术、阅读与思考
2026-04-05
发布日期
4 min read
阅读时长
浏览量
Cloudflare Tunnel 安装配置

安装 cloudflared

wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64
mv cloudflared-linux-amd64 cloudflared
chmod +x cloudflared
sudo mv cloudflared /usr/local/bin/
cloudflared --version

登录 Cloudflare

cloudflared tunnel login

执行后浏览器会打开,选择你的域名授权。

成功后会生成:

~/.cloudflared/cert.pem

创建 Tunnel

cloudflared tunnel create my-tunnel

创建成功后会输出类似:

Tunnel credentials written to ~/.cloudflared/<UUID>.json

这里要记住 Tunnel 的 UUID。

编写配置文件

mkdir -p ~/.cloudflared
nano ~/.cloudflared/config.yml

也可以先看看在 /etc/cloudflared/config.yml 里的配置,如果这个文件已经存在了,则不需要在 ~/.cloudflared/config.yml 里配置。

单站点配置

tunnel: <UUID>
credentials-file: /root/.cloudflared/<UUID>.json

ingress:
  - hostname: example.com
    service: http://127.0.0.1:3000

  - hostname: www.example.com
    service: http://127.0.0.1:3000

  - service: http_status:404

单子域配置

如果你只想暴露一个子域,例如 app.example.com:

tunnel: <UUID>
credentials-file: /root/.cloudflared/<UUID>.json

ingress:
  - hostname: app.example.com
    service: http://127.0.0.1:3000

  - service: http_status:404

绑定 DNS 到 Tunnel

推荐直接用命令创建 DNS:

cloudflared tunnel route dns my-tunnel example.com
cloudflared tunnel route dns my-tunnel www.example.com

如果手工在 Cloudflare DNS 面板添加,记录应为:

CNAME example.com      -> <UUID>.cfargotunnel.com
CNAME www.example.com  -> <UUID>.cfargotunnel.com

前台测试 Tunnel

正式托管前先前台运行一次:

cloudflared tunnel run my-tunnel

确认以下几点:

  • 命令启动后没有报错
  • 日志显示 Tunnel 已连接成功
  • 访问域名可以正常返回服务内容

安装为 systemd 服务

sudo cloudflared service install
sudo systemctl enable cloudflared
sudo systemctl restart cloudflared
sudo systemctl status cloudflared

上线后验证

cloudflared tunnel list
cloudflared tunnel info my-tunnel
journalctl -u cloudflared -n 100 --no-pager
curl -I http://127.0.0.1:3000
curl -I https://example.com
curl -I https://www.example.com

上线前检查项

  • 本地服务端口确实在监听
  • config.yml 里的 hostname 和实际访问域名完全一致
  • credentials-file 路径和实际生成的 json 文件一致
  • 如果根域和 www 都要访问,就都要配置 DNS + ingress
  • 保底路由 - service: http_status:404 必须保留

最常见问题

只配了 www,没配根域

如果你访问的是 example.com,那 DNS 和 ingress 里都必须有 example.com 这一条。

本地服务端口写错

例如服务实际跑在 8080,但配置里写成了 3000,那么 Tunnel 是通的,但请求会转发失败。

域名和 ingress 不一致

例如只配置了:

- hostname: www.example.com

那直接访问:

https://example.com

仍然会失败。

排障时建议直接提供的文件和命令输出

如果后续需要进一步定位问题,优先收集这三样:

  1. ~/.cloudflared/config.yml
  2. sudo systemctl status cloudflared
  3. journalctl -u cloudflared -n 100 --no-pager

文章标签

CloudflareTunnelDNS反向代理个人开发
Cloudflare Tunnel 新建映射
上一篇

Cloudflare Tunnel 新建映射

2026-04-05

CLIProxyAPI 部署配置手册
下一篇

CLIProxyAPI 部署配置手册

2026-04-17

冬眠

冬眠

博主

专注于技术、阅读与思考。在这里记录学习、思考与生活。

45
文章
2
分类
关注我
系列:Cloudflare Tunnel

第 1 篇,共 2 篇

已是第一篇

下一篇

Cloudflare Tunnel 新建映射

文章目录

目录

  • 安装 cloudflared
  • 登录 Cloudflare
  • 创建 Tunnel
  • 编写配置文件
  • 绑定 DNS 到 Tunnel
  • 前台测试 Tunnel
  • 安装为 systemd 服务
  • 上线后验证
  • 上线前检查项
  • 最常见问题
  • 排障时建议直接提供的文件和命令输出

关于作者

冬眠

冬眠

博主

专注于技术、阅读与思考。相信持续记录与输出,是对抗遗忘最好的方式。

了解更多

相关文章

查看更多
Cloudflare Tunnel 新建映射

Cloudflare Tunnel 新建映射

2026-04-05 · 3 min read

域名邮箱配置指南

域名邮箱配置指南

2025-12-25 · 8 min read

CentOS 下安装 Docker Compose 完整指南

CentOS 下安装 Docker Compose 完整指南

2026-04-29 · 10 min read

订阅更新

不想错过新文章?订阅 RSS 更新,第一时间收到新内容。

RSS 订阅