Cloudflare Tunnel全流程配置实现NAS应用直接用域名访问

作者:admin 日期:2025年11月20日
Cloudflare Tunnel全流程配置实现NAS应用直接用域名访问 ✔ 适用于:Debian / Ubuntu / CentOS ✔ 不需要公网 IP ✔ 不需要开放路由器端口 ✔ 自动 HTTPS ✔ 自动证书 ✔ 自动反向代理你的 Flask / Nginx / 静态站点 Cloudflare Tunnel 全流程配置 --- # ? **第一步:安装 Cloudflare Tunnel(cloudflared)** Debian/Ubuntu 一键安装: ```bash curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o cloudflared.deb sudo dpkg -i cloudflared.deb ``` 检查版本: ```bash cloudflared --version ``` --- # ? **第二步:登录 Cloudflare 账号** ```bash cloudflared tunnel login ``` 执行后会弹出一个 URL 复制到浏览器 → Cloudflare → 选择你要使用的域名(如 m.zenjong.site) 绑定成功后,会生成一个证书文件: ``` /root/.cloudflared/cert.pem ``` --- # ? **第三步:创建 Tunnel** ```bash cloudflared tunnel create m_tunnel ``` 会生成: ``` Tunnel ID:xxxxxx-xxxx-xxxx-xxxx .json ``` xxx.json 改成m_tunnel.json 配置文件目录: ``` /root/.cloudflared/ ``` --- # ? **第四步:编写 Tunnel 配置文件(核心步骤)** 创建配置文件: ```bash nano /root/.cloudflared/config.yml ``` 写入以下内容(完全不用改)? --- # ⭐ **示例:反代你的 Flask 服务(本地 5000 端口)** ```yaml tunnel: m_tunnel credentials-file: /root/.cloudflared/m_tunnel.json ingress: - hostname: m.zenjong.site service: http://localhost:4533 - service: http_status:404 ``` # ? **第五步:创建 Cloudflare DNS 记录(自动完成)** 执行: ```bash cloudflared tunnel route dns m_tunnel m.zenjong.site ``` Cloudflare 会自动创建一个 CNAME: ``` Added CNAME m.zenjong.site which will route to this tunnel tunnelID=9233dd4c-0878-4b2c-ad9c-147a0b6312b3 ``` cloudflared tunnel run au_tunnel ? **不需要你手动在 Cloudflare 后台添加 DNS!** --- # ? **第六步:创建 Systemd 自启动服务(强烈推荐)** ```bash cloudflared service install ``` 启动服务: ```bash systemctl start cloudflared systemctl enable cloudflared ``` 查看日志: ```bash journalctl -fu cloudflared ``` 看到: ``` Connection established ``` 说明成功! --- # ? **第七步:访问你的公网 HTTPS 域名(完成)** 直接访问: ``` https://m.zenjong.site``` 你会看到: * 自动 HTTPS * 自动证书 * 自动 CDN 加速(如需) * 不需要开放 5000 端口 * 不需要 NAT * 不需要公网 IP --- # ⭐ 完整目录结构(自动生成): ``` /root/.cloudflared ├── cert.pem ├── d_tunnel.json └── config.yml ``` --- # ? 如何测试? ```bash curl -I https://m.zenjong.site ``` 返回 200/302 即正常。 同一个主机,增加不同的端口的配置方案 除了检查默认的配置文件,还需要到自服务的启动项看, **ExecStart=/usr/bin/cloudflared tunnel --config /etc/cloudflared/config.yml run** 在config.yml 增加 tunnel: ass-tunnel credentials-file: /etc/cloudflared/ass-tunnel.json protocol: http2 ingress: - hostname: ass.example.com service: http://127.0.0.1:5000 - hostname: git.example.com service: http://127.0.0.1:3000 - service: http_status:404 执行 `cloudflared tunnel route dns ass_tunnel git.example.com` 然后重启 `systemctl restart cloudflared`
← 上一篇:监控 debian linux 服务器流量脚本 下一篇:音流 自动显示歌词的配置 →