配置回源白名单时,核心原则是只允许来自防护节点的IP地址访问源站,同时保持IP列表的及时更新,否则可能导致网站无法访问或安全防护失效。
网站接入CDN后回源IP白名单怎么设置
当你把网站接入CDN或WAF后,源站服务器需要区分哪些请求是经过防护节点转发的,哪些是直接攻击源站的,如果源站防火墙对所有来源开放,攻击者可以直接绕过防护往源站打流量,防护效果等于零,回源白名单的作用就是让源站只信任防护节点的IP,拒绝其他所有入站请求,这是安全架构里最后一道防线。
业内专家指出,不少网站被攻破是因为回源白名单配置遗漏或错误,导致防护节点无法正常回源,网站直接打不开,所以配置的正确性直接影响业务连续性。
获取正确的回源IP段
不同服务商提供的回源IP段是公开的,但会动态调整,你需要从官方文档或控制台获取最新列表。
- 简米云CDN:在控制台找到“回源IP段查询”,下载文本文件,通常包含几十个IP段。
- 酷番云CDN:在“IP归属地查询”里有一页专门列出回源IP。
- Cloudflare:官方文档会更新回源IP范围,并建议通过API自动获取。
- 高防IP/云WAF:类似,服务商会提供回源节点IP列表,有时会分电信、联通、移动段。
务必定期获取,建议每季度更新一次,因为IP段会因扩容而变动,部分服务商支持通过API实时拉取,你可以写脚本自动同步,避免手动更新遗漏。
在源站服务器上配置白名单
配置的位置取决于你的源站环境,下面是几种常见方式:
- Linux服务器使用iptables:先清空INPUT链默认规则,再添加允许回源IP的规则,最后拒绝其余请求,注意顺序,先放行后拒绝,示例命令:
iptables -A INPUT -s 203.0.113.0/24 -j ACCEPT iptables -A INPUT -s 198.51.100.0/24 -j ACCEPT iptables -A INPUT -j DROP如果使用firewalld,可以创建rich-rule。
- Windows服务器防火墙:新建入站规则,允许指定IP段通过,然后阻止所有其他入站流量,注意要同时允许内部管理IP,否则你连不上服务器。
- 云安全组(如简米云、酷番云、AWS):在安全组入方向添加允许回源IP段的规则,优先级调高,再添加一条拒绝所有来源的规则(优先级最低),安全组规则默认是拒绝,所以通常只需要添加允许规则即可,但务必确认安全组默认规则是“拒绝所有”,否则会有风险。
一个容易被忽略的点:如果你源站有多个端口(比如80和443),白名单要针对所有端口生效,不能只配80端口,如果使用了负载均衡器(SLB),回源来源可能是负载均衡器的IP而不是CDN节点IP,需要根据实际架构调整。

验证配置结果
配置完成后,你需要模拟两种场景:
- 正常回源:通过CDN加速后的域名访问网站,看是否正常响应,如果出现502或超时,说明白名单可能误拦截了正确的回源IP。
- 绕过防护直接访问:用源站IP直接访问服务器(比如curl http://源站IP),应该被拒绝连接或超时,如果还能正常访问,说明白名单配置未生效,有安全风险。
行业共识认为,验证环节最少要持续几分钟,因为部分CDN节点有多个IP,需要确保所有节点IP都在白名单内,你还可以查看源站访问日志,确认来源IP是否都是防护节点IP段。
防护节点回源白名单配置步骤详解
虽然原理不复杂,但实际操作中很多人会遗漏细节,下面按业务场景拆解配置流程。
配置前的准备工作
- 记录源站公网IP,确保你知道自己服务器的出口IP(如果有多个出口,比如双线,需要全部记录)。
- 确认防护服务的类型:CDN加速、高防IP、Web应用防火墙,回源IP段可能不同,不要混用。
- 准备一个管理通道,比如通过堡垒机访问源站,避免白名单配置后自己无法登录服务器。
从控制台导出回源IP列表
以某主流CDN为例,操作路径:控制台 -> 安全管理 -> 回源IP白名单 -> 点击下载IP段,有些服务商会提供一个JSON文件,包含所有IP段和更新日期。
建议直接使用服务商提供的IP列表文件,不要手动从网页复制,防止遗漏,如果你同时使用多个防护服务,需要合并所有IP段,注意去重。
添加规则到防火墙或安全组
这里有一个关键排序:白名单规则必须放在拒绝规则之前,如果拒绝规则在前,即使后面有允许规则,也不会生效。
- 在Linux iptables中,规则是按照顺序匹配的,所以先添加ACCEPT规则,最后添加DROP规则。
- 在云安全组中,每条规则有一个优先级数字,数字越小优先级越高,你需要确保允许规则的优先级高于拒绝规则。
表格对比常见平台的安全组优先级设置
| 平台 | 规则优先级机制 | 推荐做法 |
|---|---|---|
| 简米云安全组 | 数字越小优先级越高,默认100 | 允许规则设置优先级1-10,拒绝规则设置优先级60-100 |
| 酷番云安全组 | 规则从上到下匹配,有默认拒绝 | 只需要添加允许规则,最后一条自动拒绝所有 |
| AWS安全组 | 默认拒绝所有,只允许显式规则 | 添加允许规则即可,不需要拒绝规则 |
| 华为云安全组 | 数字越小优先级越高,默认100 | 类似简米云,保证允许规则优先级高于拒绝规则 |
测试与监控
配置完成后,除了前面提到的验证,还需要设置监控告警,如果源站收到非白名单的请求,可能是攻击或者配置错误,你需要及时获知。
- 在源站服务器上开启防火墙日志,记录被拒绝的请求。
- 使用云监控服务,当源站流量异常增大时触发告警。
- 定期检查CDN服务商的回源监控,看是否有回源失败趋势。
回源白名单配置常见错误与修正
即使有文档,实际操作中还是会出现各种问题,下面列出最常见的情况,便于你对照排查。
忽略动态IP导致断流
一些防护服务会在不同时间使用不同的VIP(虚拟IP)回源,或者CDN节点IP会动态扩容,如果你只配置了静态的IP段,当服务商更换IP后,你的白名单就失效了,网站会大面积502。
解决方案:定期更新IP列表,或者使用服务商提供的IP集API自动刷新,多数云厂商已经支持“IP集”或“地址组”功能,你可以在防火墙规则中引用这个动态集合,这样当IP变化时自动生效。
只配置了IPv4,未配IPv6
现在越来越多的CDN节点支持IPv6回源,如果源站也开启了IPv6,但白名单只配了IPv4,那么IPv6请求会被拒绝,导致部分用户访问失败。
检查方法:登录源站服务器,查看网卡是否有IPv6地址,如果有,则需要在防火墙和安全组中同时配置IPv6回源IP段。
白名单顺序错误导致其他规则覆盖
如果你在服务器上同时配置了多个防火墙策略(比如iptables规则和云安全组规则),或者有多个规则链,可能会因为顺序导致白名单不生效,先放行了一个宽泛的IP段,后放行CDN段,但之前的一个拒绝规则覆盖了允许规则。
排查方法:使用iptables -L -n --line-numbers查看规则顺序,确认允许规则在拒绝规则之前,对于安全组,检查优先级设置。
如何快速排查问题
当配置完白名单后网站无法访问,可以按以下步骤快速定位:
- 临时关闭源站防火墙,看网站是否恢复正常,如果恢复,说明白名单配置有误。
- 查看CDN服务商的回源日志,看源站IP是否被拒绝,确认错误IP。
- 比对白名单列表与最新回源IP段,看是否有遗漏或过期。
- 检查源站服务器是否有多个网络接口,白名单是否应用到了正确的接口。

不同场景下的回源白名单策略对比
不同的防护服务,配置策略略有差异,下表可以帮你快速选择适合的设置方式。
| 服务类型 | 回源IP特点 | 白名单策略建议 | 更新频率 |
|---|---|---|---|
| 普通CDN加速 | IP段较多,会动态变化 | 使用服务商IP集,自动更新 | 每月检查一次,或使用API自动同步 |
| 高防IP(DDoS防护) | 固定IP段,相对稳定 | 手动配置,但需要关注扩容通知 | 每季度手动更新一次 |
| Web应用防火墙(WAF) | 回源IP段固定,但可能包含多个区域 | 严格限制,仅允许WAF回源IP | 每半年检查一次,除非服务商通知 |
| 自建NGINX反向代理 | IP为自己控制,变动少 | 手动配置,但需预留备用IP | 按需更新 |
回源白名单是安全防护的基石,配置不当比不配更危险,你只需要记住两个核心:第一,只放行防护节点的IP段;第二,保持IP列表的时效性,做到这两点,攻击者就很难绕过你的防护直接攻击源站,而你的业务也能稳定运行。
关于回源白名单配置的常见问题解答
问题1:配置回源白名单后网站无法访问,可能是什么原因?
最常见的原因是白名单中遗漏了当前CDN节点使用的IP,或者IP段已过期,你可以先关闭防火墙测试,确认是否是白名单导致,然后查看CDN服务商的最新回源IP列表,与你的白名单对比,修正遗漏或过期的IP,检查是否有其他防火墙规则(如安全组、iptables)优先级高于白名单,导致被拒绝。
问题2:回源IP列表应该多久更新一次?
这取决于服务商的更新频率,据行业统计,多数CDN服务商每季度会调整一次回源IP段,高防IP通常更稳定,但建议每半年检查一次,如果服务商提供API或自动更新机制,建议使用自动化方式,避免手动遗忘,你可以设置日历提醒,每季度核对一次官方文档。
问题3:我的源站使用了负载均衡器,回源白名单应该配置在哪里?
如果负载均衡器(如SLB、Nginx反向代理)位于源站前面,那么CDN节点的回源请求会先到达负载均衡器,再由负载均衡器转发到后端服务器,白名单应配置在负载均衡器上,而不是直接配置在后端服务器上,后端服务器可以只允许负载均衡器的IP访问,形成两层防护,如果负载均衡器本身不具备防火墙功能,你可以在后端服务器上按来源IP做限制,但来源IP会是负载均衡器的地址,而不是CDN节点IP。
