Cloudflare Tunnel 配置文档
目录
简介
Cloudflare Tunnel 允许安全地将内部应用程序暴露到外部互联网,而无需公开暴露你的服务。本文档将详细指导如何配置和运行 Cloudflare Tunnel。
环境准备
- 操作系统:支持的 Linux 发行版(如 Ubuntu)
- 访问权限:root 用户或具有 sudo 权限的用户
- Cloudflare 账户和已配置的域名
下载与安装 cloudflared
-
下载 cloudflared:
# 对于 Linux curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o cloudflared
-
赋予执行权限:
chmod +x cloudflared
-
移动到系统路径(可选):
sudo mv cloudflared /usr/local/bin/
创建 Tunnel
-
登录 Cloudflare:
cloudflared tunnel login
按照提示打开浏览器进行身份验证。登录后,Cloudflare 会提供一个证书文件,通常位于
~/.cloudflared
目录下。确保将此文件复制到指定路径。 -
创建 Tunnel:
cloudflared tunnel create <your-tunnel-name>
-
查看现有 Tunnel:
cloudflared tunnel list
配置 Tunnel
- 创建配置文件:
在~/.cloudflared/config.yml
中创建以下配置:tunnel: <your-tunnel-id> credentials-file: /path/to/your/credentials.json ingress: - hostname: yourdomain.com service: http://localhost:PORT # 替换为本地服务的地址 - service: http_status:404 # 默认处理
设置 DNS 解析
-
添加 DNS 解析:
使用以下命令为每个子域名添加 DNS 记录:cloudflared tunnel route dns <your-tunnel-name> yourdomain.com
对于多个子域名,可以重复上述命令:
cloudflared tunnel route dns <your-tunnel-name> subdomain1.yourdomain.com cloudflared tunnel route dns <your-tunnel-name> subdomain2.yourdomain.com
在后台运行 Tunnel
-
创建 systemd 服务文件:
sudo nano /etc/systemd/system/cloudflared.service
-
添加服务配置:
[Unit] Description=Cloudflare Tunnel After=network.target [Service] ExecStart=/usr/local/bin/cloudflared tunnel run <your-tunnel-name> Restart=on-failure User=root StandardOutput=journal StandardError=journal [Install] WantedBy=multi-user.target
-
重新加载 systemd 配置:
sudo systemctl daemon-reload
-
启动服务:
sudo systemctl start cloudflared
-
设置开机自启:
sudo systemctl enable cloudflared
测试 Tunnel
使用以下命令测试配置是否成功:
curl -I https://yourdomain.com
故障排查
- 服务无法访问:检查本地服务是否正在运行,并确保端口开放。
- cloudflared 日志:查看日志获取更多信息:
journalctl -u cloudflared -f
评论区