CDN回源域名设置,隐藏源站真实
很多站长在接入 CDN 后,发现源站真实 IP 仍然能被直接访问,攻击者可以绕过 CDN 直接攻击服务器。
本文要解决的就是:如何通过正确设置 CDN 回源域名,让外部只能看到 CDN 节点 IP,而看不到你的源站真实 IP。
适合刚接触 CDN 配置的零基础用户,跟着步骤做就能完成隐藏源站的操作。
动手前需要确认的三件事
在设置回源域名之前,先确认下面几个条件,否则后面容易白忙一场。
- 你有一个已经注册好的域名,并且能修改它的 DNS 解析记录。
- 源站服务器上已经部署好网站,并且可以通过域名正常访问。
- 你使用的 CDN 服务商支持自定义回源域名(大部分主流 CDN 都支持)。
关键点:隐藏源站真实 IP 的核心思路,是让 CDN 回源时使用一个“只有 CDN 知道”的域名,而不是直接用源站 IP 回源。
这样即使有人拿到 CDN 节点 IP,也无法直接定位到你的服务器。
分步操作:从 DNS 到 CDN 后台
第一步:为源站创建一个隐藏回源域名
登录你的 DNS 管理后台(比如阿里云 DNS、腾讯云 DNSPod 或 Cloudflare),为你的域名添加一条 A 记录。
- 主机记录:填一个不常见的子域名,例如
origin-only或src-backend。 - 记录类型:选择
A。 - 记录值:填写你源站服务器的真实 IP 地址。
- TTL:可以设置为 600 秒(10 分钟),方便后续调整。
假设你的主域名是 example.com,那么这条记录就是 origin-only.example.com。
这个子域名不要对外公开,也不要在网站任何地方引用。
第二步:在 CDN 后台设置回源域名
进入你所用 CDN 服务商的控制台,找到域名管理中的“回源配置”或“源站设置”。
不同服务商界面略有差异,但通常包含以下选项:
- 源站类型:选择“域名”而不是“IP”。
- 回源域名:填写上一步创建的
origin-only.example.com。 - 回源协议:根据源站是否开启 HTTPS 选择 HTTP 或 HTTPS。
- 回源端口:默认 80 或 443,按实际监听端口填写。
保存后,CDN 节点在回源时就会解析 origin-only.example.com 来获取内容,而不是直接使用源站 IP。
第三步:限制源站只接受 CDN 回源请求
仅仅设置回源域名还不够,因为源站 IP 仍然可能被扫描到。
你需要在源站服务器上做一层防护,只允许 CDN 节点访问。
如果你使用 Nginx,可以在站点配置中加入以下规则,只允许 CDN 回源 IP 段访问,拒绝其他来源:
server {
listen 80;
server_name origin-only.example.com;
# 允许 CDN 回源 IP 段,具体 IP 段请查阅你的 CDN 服务商文档
allow 192.0.2.0/24;
deny all;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
注意:上面的 192.0.2.0/24 只是示例,你需要替换成你所用 CDN 服务商公布的回源 IP 段。
可以在 CDN 控制台的“回源 IP 列表”或帮助文档中找到。
如果你使用宝塔面板,可以在“网站” -> “设置” -> “配置文件”中修改,添加 allow 和 deny 规则。
第四步:验证源站是否隐藏成功
配置完成后,用以下方法验证:
- 在浏览器直接访问
http://你的源站IP,应该无法打开网站或返回 403。 - 在浏览器访问
http://origin-only.example.com,如果也返回 403,说明限制生效。 - 通过 CDN 加速的域名正常访问,网站内容显示正常。
如果源站 IP 直接访问仍然能打开网站,说明限制规则没有生效,需要检查 Nginx 配置是否重载,或者 CDN 回源 IP 段是否填写正确。
容易踩坑的几个地方
- 回源域名不要和主域名相同。如果回源域名就是
www.example.com,那么 CDN 回源时还是会解析到源站 IP,隐藏效果大打折扣。 - CDN 回源 IP 段会变化。部分 CDN 服务商的回源 IP 段会定期更新,建议定期检查并更新防火墙规则,或者使用 API 自动同步。
- 源站防火墙不要误封 CDN。如果你在服务器上使用了 iptables 或云防火墙,确保放行了 CDN 回源 IP 段,否则用户访问会报 502 或超时。
- HTTPS 回源证书问题。如果回源协议是 HTTPS,源站需要配置有效证书,否则 CDN 回源会失败。
常见疑问
回源域名必须用子域名吗?
不强制,但推荐用不常见的子域名。用主域名做回源域名会让隐藏效果变差,因为主域名本身解析可能暴露源站 IP。
设置后网站访问变慢怎么办?
回源域名多了一次 DNS 解析,理论上会增加少量延迟。如果感觉明显变慢,可以检查 CDN 是否开启了“回源长连接”或“DNS 缓存”功能,减少解析次数。
源站 IP 还是被扫描到了,可能是什么原因?
常见原因有三个:源站服务器上还有其他域名直接解析到 IP、邮件服务暴露了真实 IP、SSL 证书信息泄露了源站 IP。建议逐一排查。
CDN 服务商不支持自定义回源域名怎么办?
可以考虑更换支持该功能的 CDN,或者使用反向代理方案:在源站前面加一台代理服务器,CDN 回源到代理,代理再转发到真实源站。
按照上面的步骤操作后,你的源站真实 IP 已经被 CDN 回源域名隐藏起来。
外部扫描只能看到 CDN 节点 IP,无法直接攻击你的服务器。
建议配置完成后定期检查回源 IP 段和源站访问日志,确保防护持续有效。