什么是 Cloudflare Tunnel
Cloudflare Tunnel 是一种无需暴露服务器公网 IP 即可安全连接到互联网的服务。它通过建立从您的服务器到 Cloudflare 边缘网络的加密出站连接,避免了传统端口转发带来的安全风险。
为什么 WordPress 需要 Cloudflare Tunnel
- 安全性提升:无需在防火墙上开放端口,减少攻击面
- 简化部署:无需配置复杂的网络设置
- 绕过网络限制:适用于受限制的网络环境(如企业内网)
- 隐藏服务器IP:防止DDoS攻击直接针对源站
配置 WordPress 使用 Cloudflare Tunnel 的步骤
1. 准备工作
- 拥有 Cloudflare 账户
- 已注册域名并托管在 Cloudflare
- 服务器上安装 Docker(推荐方式)
2. 创建 Tunnel
- 登录 Cloudflare 仪表板
- 进入 “Zero Trust” > “Access” > “Tunnels”
- 点击 “Create a tunnel”
- 为隧道命名(如 “wordpress-tunnel”)
3. 安装并配置 cloudflared
在 WordPress 服务器上执行:
docker run -d --name cloudflared \
--restart unless-stopped \
cloudflare/cloudflared:latest \
tunnel --no-autoupdate run \
--token <您的隧道令牌>
4. 配置公共主机名
- 返回 Cloudflare 隧道配置页面
- 添加公共主机名:
- 子域名:如 “blog”
- 域名:选择您托管的域名
- 路径:留空(除非需要特定路径)
- 服务类型:HTTP
- URL:localhost:80(默认WordPress端口)
5. 配置 WordPress
- 确保 WordPress 设置中的站点地址为您的 Cloudflare 域名
- 更新
wp-config.php
:
define('WP_HOME', 'https://blog.yourdomain.com');
define('WP_SITEURL', 'https://blog.yourdomain.com');
高级配置选项
1. 性能优化
- 启用 Argo Smart Routing 加速连接
- 配置缓存规则减少源站负载
2. 安全增强
- 设置 Zero Trust 访问策略
- 启用 WAF 防护
- 配置速率限制
3. 负载均衡
- 多个 Tunnel 端点实现高可用
- 多台 WordPress 服务器负载均衡
常见问题解决
- 连接问题:
- 检查 cloudflared 日志:
docker logs cloudflared
- 验证隧道状态:
docker exec cloudflared tunnel list
- 混合内容警告:
- 确保 WordPress 使用 HTTPS
- 安装 Really Simple SSL 插件
- 性能问题:
- 检查 Cloudflare 缓存设置
- 优化 WordPress 数据库和插件
总结
通过 Cloudflare Tunnel 部署 WordPress 提供了更安全、更简单的内网穿透方案,特别适合那些无法或不愿暴露公网 IP 的场景。这种方法不仅增强了安全性,还能利用 Cloudflare 的全球网络提升访问速度。