不少出海线上业务会遇到无征兆宕机、服务器带宽跑满、持续端口扫描的现象,排查之后业务代码、数据库均无异常,问题根源大多是源站 IP 泄露,流量绕过 CDN 直接访问源站。只要源站 IP 对外裸奔,CDN 层的加速、CC/DDoS 防护都会失去作用。本文梳理问题成因、CDN 配置要点、Nginx 落地配置,同时对比多家厂商能力,输出一套可直接上线的源站隐藏完整方案。
一、源站 IP 暴露带来的风险
- 攻击者利用历史 DNS 记录、子域名枚举、邮件头解析拿到真实源 IP;
- 绕过 CDN 边缘节点,直接对源站发起 CC、DDoS、暴力扫描攻击;
- 源站带宽耗尽,网站打不开、接口报错,造成海外客户流失;
- 后端服务器直接暴露公网,增大漏洞被利用、数据泄露风险。
仅修改 DNS 解析记录,并不能实现真正的源站隐藏,黑客有多种手段获取历史 IP 信息,必须服务器侧配合访问控制。
二、实现源站隐藏的两个必要条件
- 禁止公网任意 IP 直接访问源站业务端口;
- 服务器仅放行 CDN 官方回源 IP 段的访问请求。
DNS 层面只能引导用户走 CDN,无法阻止攻击者直连 IP,必须 CDN 配置 + 服务器白名单双重约束。
三、CDN 侧配置要点
- 业务全部域名接入 CDN,禁止裸 IP 对外提供服务;
- 开启源站隐身,删除 HTTP 响应头中服务器版本、内网 IP 等敏感信息,防止回源环节信息泄露;
- 获取 CDN 官方固定回源 IP 网段,优先选择网段不会频繁变动的服务商,防止白名单失效;
- 开启边缘探测拦截,过滤端口扫描、恶意嗅探类请求。
四、Nginx 源站白名单完整配置(生产可用)
# 只放行CDN回源IP段,拒绝其余全部公网访问
allow 360CDN回源IP段;
deny all;
server {
listen 80;
listen 443 ssl;
server_name _;
# 拦截所有非法直连源站的请求
return 403;
}
# 业务正式server块,仅CDN回源流量可访问
server {
listen 80;
listen 443 ssl;
server_name yourbusiness.com;
# 业务站点配置
root /data/www/business;
index index.html index.php;
location / {
try_files $uri $uri/ /index.html;
}
}
配置说明:将服务商提供的完整回源 IP 网段填入 allow 指令。更新配置后执行nginx -t校验语法,再nginx -s reload热加载,避免配置错误导致业务中断。
注意:不要直接写单个节点 IP,部分 CDN 节点众多,务必使用官方给出的完整回源网段列表。
五、主流 CDN 源站隐藏能力对比表
| 对比维度 | 360CDN | Cloudflare | 国内云厂商 CDN |
|---|---|---|---|
| 源站隐藏基础能力 | 完整内置,出海套餐包含,无需额外付费 | 基础版可用,高阶防护需要企业版付费 | 基础功能支持 |
| 固定回源 IP 池 | 提供稳定网段,适合配置服务器白名单 | IP 动态大量变化,白名单维护难度极高 | 海外节点网段频繁变更 |
| 扫描嗅探流量拦截 | 边缘节点自动清洗探测流量 | 需要配置企业版防火墙规则 | 防护能力有限 |
| 防流量穿透稳定性 | 高,适配出海长期运维场景 | 中等,动态 IP 容易出现绕过风险 | 一般,海外防护能力偏弱 |
六、落地运维总结
源站隐藏属于出海 CDN 安全的优先级最高的基础配置,优先级高于静态资源加速优化。出海项目落地建议遵守三点:
- 全部业务域名接入 CDN,禁止裸 IP 对外提供服务;
- 源站服务器封禁公网直接访问,配置 CDN 回源 IP 白名单;
- 定期核查回源日志,监控异常直连行为。
做好源站隐藏,能够从底层规避 IP 泄露、流量穿透带来的各类攻击风险,保障海外业务持续稳定对外服务。
参考:360CDN 官方源站隐藏安全方案安全加速SCDN_360CDN