腾讯云服务器IP如何正确配置Cloudflare橙云?避坑指南
腾讯云服务器IP如何正确配置Cloudflare橙云?避坑指南
最近看到不少小伙伴在折腾服务器,手里攥着域名和腾讯云的IP,却还是在“裸奔”——直接用IP访问服务。想用 Cloudflare 的“橙云”(代理模式)把服务器IP藏起来,顺便享受一下CDN加速和防护,结果折腾半天连不上,或者在 Nginx 配置里绕了无数个弯路,搞得心力交瘁。
别慌,这个问题其实非常普遍。今天我们就来彻底梳理一下,为什么你的腾讯云服务器似乎“没法”用 Cloudflare 橙云,以及到底该怎么配置才能丝般顺滑。
为什么你会觉得“没法用”?
首先,我们要明确一点:腾讯云服务器和 Cloudflare 之间并没有天然的排斥关系。不管你是轻量应用服务器还是 CVM,本质上就是一台对外提供服务的 Linux 主机。
确保 DNS 记录状态开关是橙色云朵(Proxied),而不是灰色云朵(DNS only)
你觉得“没法用”,通常是因为陷入了以下几个误区:
- 直接回源 IP 被拦截:腾讯云的安全组或者防火墙没放行 Cloudflare 的 IP 段,导致流量进不来。
- SSL/TLS 模式搞错了:这是最常见坑,源站(Nginx)和 Cloudflare 之间的加密协议不一致,导致握手失败。
- Nginx 配置没做好反向代理:还在用 IP 监听,没有正确配置 Server Name。
第一步:域名解析与 Cloudflare 设置
在动服务器之前,先搞定 Cloudflare 后台。这是所有环节的入口。
- 添加站点:把你的域名扔进 Cloudflare,按照指引将域名的 NS 服务器修改为 Cloudflare 提供的地址(解析生效可能需要几分钟到几小时,耐心等待)。
- 开启橙云:在 DNS 记录里,添加一条 A 记录,IPv4 address 填写你的腾讯云服务器公网 IP。最关键的一步来了——确保状态开关是橙色云朵(Proxied),而不是灰色云朵(DNS only)。如果是灰色,那就相当于直接穿透,起不到隐藏 IP 和防护的作用。
- SSL/TLS 模式选择:这里有个关键点。如果是新手,建议先选 “Flexible” 模式。这意味着用户到 CF 是加密的(HTTPS),CF 到你的服务器是明文的(HTTP)。这能帮你快速排除证书问题。等跑通了,再进阶到 “Full” 或 “Full (strict)” 模式。
第二步:腾讯云服务器防火墙与安全组
很多人忽略了这一步,导致网页一直打不开 522 错误。
当你开启了橙云,用户访问的是 Cloudflare 的 IP,而 Cloudflare 会去请求你的腾讯云服务器 IP。因此,你的服务器防火墙(安全组)必须允许 Cloudflare 的 IP 段访问你的 Web 端口(通常是 80 和 443)。
你可以选择以下两种策略之一:
- 简单粗暴法(测试用):在腾讯云控制台的安全组里,直接放行 TCP 协议的 80 和 443 端口,来源设置为
0.0.0.0/0(全网)。虽然不安全,但能快速验证是否是防火墙问题。 - 正规军法(推荐):只放行 Cloudflare 的 IP 段。Cloudflare 官网有提供 IPv4 列表,你可以把这些 CIDR 加入到你的入站规则中。如果不嫌麻烦,写个脚本自动同步也是个好主意。
第三步:Nginx 配置实战
好了,外部通道都打开了,现在轮到 Nginx 接盘了。
1. 基础配置
不管你用什么模式,Nginx 的 server_name 必须要绑定你的域名,而不再是 _ 或 IP 地址。
server {
listen 80;
server_name your-domain.com; # 这里换成你的域名
# 如果是 Flexible 模式,直接在这里处理逻辑
location / {
proxy_pass http://127.0.0.1:你的本地端口; # 比如你的服务跑在 3000 或 8080
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
2. 进阶配置(HTTPS/Full 模式)
如果你想更安全,在 Cloudflare 选了“Full”模式,那你需要在服务器上配置 SSL 证书。可以用自签名证书,也可以用 Let's Encrypt。
server {
listen 443 ssl;
server_name your-domain.com;
# 证书路径,如果是自签名需自己生成
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://127.0.0.1:你的本地端口;
proxy_set_header Host $host;
# 下面这两个对于 HTTPS 转发非常重要
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
}
}
# 强制跳转 HTTPS(可选)
server {
listen 80;
server_name your-domain.com;
return 301 https://$host$request_uri;
}
3. 避坑提示:HTTP 301 重定向死循环
如果你开启了 Cloudflare 的 “Always Use HTTPS” 功能,同时 Nginx 里又写了强制将 80 端口跳转到 443,可能会出现 “Too many redirects”(重定向次数过多)的错误。
解决方案:检查 CF 的 SSL 模式。如果是 Flexible,千万不要在服务器强跳 HTTPS,因为 CF 到服务器是 HTTP 的,你强制跳回去,浏览器和 CF 就会像皮球一样踢来踢去。想开启强制 HTTPS,请确保 CF 设置为 Full 模式且服务器证书配置正确。
常见报速查表
- 520 Web Server Returned an Unknown Error:通常是源站 Nginx 挂了,或者防火墙拒绝了 CF 的连接。去服务器看
nginx -t和错误日志。 - 522 Connection Timed Out:典型的网络/防火墙问题。检查腾讯云安全组有没有放行端口,服务器内部 iptables 有没有挡住。
- 525 SSL Handshake Failed:证书问题。确认 CF 模式和源站证书是否匹配(比如 CF 用 Full strict,源站用了自签名证书就会挂)。
- 访问裸 IP 正常,访问域名 404/502:检查 Nginx 的
server_name是否写对了,proxy_pass的目标端口服务是否启动。
总结
腾讯云服务器完全可以完美适配 Cloudflare 橙云。不要把问题想得太复杂,只要理顺了 “用户 -> CF(加密/解密)-> 你的服务器(防火墙放行)-> Nginx(反向代理)” 这条链路,一切都会变得简单。
不要再做给 AI 搬运问题的“人力车夫”了,按上面的步骤一步步排查,早点把自己的服务藏在那朵橙色的小云朵后面,既安全又省心!

评论已关闭