域名白名单怎么设置才能一次生效
添加域名为白名单的核心操作是:先明确你要放行的是“哪个层面的域名限制”,然后找到对应后台的“访问控制”或“安全设置”入口,填入完整域名并选择“允许”策略,保存后刷新缓存即可。很多人设置失败,不是域名写错了,就是找错了配置位置。
搞懂你到底在给谁做白名单
域名白名单这个说法,在真实工作中对应着至少四种完全不同的场景,你只有先搞清楚自己在处理哪一种,后续操作才有意义。
邮件服务器的域名白名单
这是普通用户接触最多的场景,你发的邮件被对方邮箱系统拦截,或者对方发给你的邮件进了垃圾箱,都是因为收件方或发件方的邮件网关对陌生域名有严格过滤。
在企业邮箱管理后台或自建邮件服务器(如Postfix、Exchange)中,添加域名到白名单,意味着对该域名来源的所有邮件不做垃圾邮件评分,直接投递到收件箱。
网站后台的授权域名白名单
你在使用网站管理系统(如WordPress、织梦)或第三方登录插件时,后台会要求填写“授权域名”或“允许访问的域名”,这种白名单用于防止CSRF跨站请求伪造,只有列表中的域名才能调用API接口或加载管理页面。
云服务器安全组的IP白名单(注意区分)
云服务器的安全组是基于IP的,不是基于域名的,但很多人在配置时,会把“域名”粗心地当成“IP”来问,如果你买的是简米云或酷番云服务器,添加白名单通常是在安全组规则里填IP地址或CIDR网段,而不是填域名。要填域名的地方,一般是Nginx反向代理或WAF防火墙配置。
CDN加速和防火墙的Referer白名单
你的网站图片被其他网站盗链,流量消耗巨大,此时你要做的,是去CDN控制台或云WAF里配置Referer白名单(防盗链白名单),只允许特定域名的请求加载你的图片资源。
手把手操作:三种主流环境下的添加步骤
企业邮箱后台添加白名单(以常见邮箱服务商为例)
登录你的企业邮箱管理后台,路径是:管理 > 安全策略 > 邮件过滤 > 白名单管理,点击添加,输入要放行的域名(例如example.com,不需要带www或http://),保存。

这里有个常见误区:如果你只填了example.com,那么sub.example.com发来的邮件还是可能被拦截,多数邮箱后台支持泛域名格式,填.example.com才能全部放行,不过据部分服务商文档显示,某些平台不支持通配符,需要逐条添加,建议添加后,先发一封测试邮件,看是否进入收件箱。
宝塔面板或Nginx环境添加白名单
如果你用的是宝塔面板,路径是:网站 > 对应站点 > 配置文件,在server块中找到location规则,加入以下代码用于禁止非白名单域名访问特定目录:
location /admin {
allow 你的服务器IP;
deny all;
}
但这是IP层面的控制,如果是纯粹的域名白名单,通常用if判断:
if ($host !~ ^(www.example.com|example.com)$) {
return 403;
}
这段代码的含义是:当访问的域名不是你指定的那两个,直接返回403错误码。把它放在server块最前面,保存后重载Nginx配置(nginx -s reload)。
微信小程序或第三方平台服务器域名白名单
做小程序开发的人经常会遇到这个问题,登录微信公众平台,路径是:开发管理 > 开发设置 > 服务器域名,在这里添加request合法域名、socket合法域名或uploadFile合法域名。
需要注意,微信要求域名必须已完成ICP备案,且不能使用IP地址和端口,只支持HTTPS协议(除了本地开发模式),修改后一般5分钟内生效,但开发者工具需要重新编译才能拉取最新配置。
添加了不生效?按这四个方向排查
相当一部分人设置了白名单却没效果,问题通常出在以下几个方面。
缓存问题:浏览器缓存和CDN缓存
浏览器可能缓存了旧的响应头,你可以打开无痕窗口测试,或者用curl命令模拟请求:
curl -I -H "Referer: https://example.com" https://yourdomain.com/pic.jpg
如果返回的响应头里有Content-Type: image/jpeg,说明白名单已生效,如果仍然403或302,再检查CDN边缘节点的缓存,在CDN控制台

刷新全部缓存后重新测试。
域名格式问题:协议头与通配符
很多系统要求填写不带www、不带http(s)://的裸域名,但也有系统强制要求带协议头,你需要在帮助文档中确认格式,常见格式对照如下:
| 系统类型 | 正确填写示例 | 错误填写示例 |
|---|---|---|
| 企业邮箱 | example.com | http://example.com/ |
| Nginx配置 | example.com 或 www.example.com | .example.com(部分版本不支持) |
| 微信公众平台 | https://example.com | example.com |
层级嵌套问题:父级域名与子域名的关系
如果你想放行store.example.com,但只加了example.com,有些平台会自动匹配所有子域名,有些则不会,行业共识认为,多数安全软件对白名单采取精确匹配策略,子域名需要单独添加,一个偷懒的办法是:如果平台支持正则表达式,可以写^[a-z0-9-]+.example.com$来匹配所有子域名。
服务器时间不同步导致的握手失败
这是一个非常隐蔽的原因,如果服务器系统时间与实际时间相差超过几分钟,HTTPS握手会失败,而此时白名单模块可能是在SSL层之后才执行的,就会导致请求被拦截,登录服务器执行date -R查看时间,如果是云服务器,在控制台开启自动同步时间功能。
白名单策略的最佳实践建议
最小化原则:只放行必要域名
域名白名单的本质是缩小暴露面,你不要同时放行几十个域名,大多数情况下,一个主域名加一个CDN节点域名就够了,放行越多,被恶意利用的风险渠道就越多。
区分“白名单”和“信任列表”
严格的安全体系里,白名单是指只有列表中的域名能通过,其余全部拒绝,而信任列表通常指域名在某个分数范围内免于第二次验证,两者配置位置不同,别搞混,如果你用的是云防火墙产品,控制台里会明确标注“白名单”和“信任策略”两个入口,功能差异很大。

定期审计白名单列表
建议每季度清理一次。删除已经不在使用的测试域名、过期项目域名,据统计,企业安全事件中有相当一部分是从遗留的测试白名单渗透进去的。
关于域名白名单价格的常见疑问
很多人在问“添加域名白名单要花多少钱”,这个问题的答案分两种情况:
- 软件层面:不管是宝塔面板、Nginx还是企业邮箱后台,添加白名单功能本身都是免费的,包含在你已购买的服务或软件授权中。
- 服务层面:如果你委托网络公司代配置,市面上一次基础配置服务的价格通常在50元到300元之间,取决于域名数量和配置复杂度,如果涉及CDN下发、多节点负载均衡,价格会更高,多数情况下你只需自己花十分钟看完本文就能搞定,没必要花这个钱。
常见问题快速解答
域名白名单和IP白名单能同时生效吗?
能,但逻辑上要处理好,多数WAF设备支持多条件组合,如果你在Nginx配置里同时限制了域名和IP,请求必须同时满足两个条件才能通过(AND逻辑),如果你需要“域名A或IP B都能访问”,需要写成两条独立的allow规则,云服务器安全组则是纯IP层判断,和Nginx层的域名判断属于不同网络层级,两者不冲突。
添加域名到白名单后,多久能生效?
即时生效的场景包括宝塔面板的Nginx配置修改(需重载)、小程序后台配置(约5分钟),需要等待的场景是CDN类产品,刷新缓存后通常10-30秒内全节点生效,极少数边缘节点可能需要几分钟,邮件服务商的白名单一般取信于实时查询,通常几分钟内生效。
泛域名白名单怎么填写才是正确的?
这取决于平台,企业邮箱类后台通常支持.example.com,可以同时匹配www.example.com和mail.example.com,但要注意,通配符不匹配裸域名example.com本身,所以需要再单独添加一行裸域名,Nginx的if判断里则不建议使用通配符,直接用正则表达式更可靠,填写前先搜索该平台“支持通配符吗”,确认格式正确再提交。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/687167.html

