先将域名解析到服务器IP,再将该IP加入服务器防火墙或云安全组的放行规则中,最终通过端口连通性测试验证生效。
这是网站上线前最容易被忽略的一步,很多用户以为解析完成就能访问,实际却被服务器端的拦截策略挡在门外,下面按服务器类型和常见场景拆解具体操作路径。
域名怎么加入服务器白名单?先搞懂拦截原理
白名单的本质是基于IP地址的访问控制,服务器并不直接认识域名,它只能识别IP,当用户输入域名访问时,DNS先将域名翻译成IP,服务器再检查这个IP是否在放行列表里,你要加的白名单其实是域名当前解析到的服务器IP,而不是域名本身。
有两个前置条件必须满足:
- 域名已完成解析,且TTL已生效(通常10分钟到24小时不等)。
- 服务器已绑定该IP,且Web服务(Nginx、Apache等)已监听80/443端口。
如果域名解析到CDN或云WAF,情况会不同,此时服务器看到的IP是CDN节点IP,而不是用户真实IP,你需要放行的是CDN回源IP段,否则会出现“域名能打开但接口报错”的怪问题。
服务器白名单配置步骤:Linux与Windows实战
Linux服务器:iptables与firewalld两种做法
大多数云服务器默认安装的是firewalld(CentOS/RHEL系)或ufw(Ubuntu系),先确认当前防火墙状态:
systemctl status firewalld # 或 sudo ufw status
如果状态为active,按以下步骤添加白名单,假设你的服务器公网IP是0.113.10,需要放行该IP对80端口和443端口的访问。
firewalld方案(推荐):
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.10" port protocol="tcp" port="80" accept' firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.10" port protocol="tcp" port="443" accept' firewall-cmd --reload
ufw方案(Ubuntu):
sudo ufw allow from 203.0.113.10 to any port 80 proto tcp sudo ufw allow from 203.0.113.10 to any port 443 proto tcp
执行完查询确认:
firewall-cmd --list-all # 或 sudo ufw status verbose
Windows服务器:高级安全防火墙图形化操作
Windows Server通过“高级安全Windows Defender防火墙”管理白名单,路径是:控制面板 → 系统和安全 → Windows Defender防火墙 → 高级设置。
具体步骤:
- 点击左侧“入站规则”,右侧选择“新建规则”。
- 选择“自定义”,点击下一步。
- 范围选项中,在“本地IP地址”保持默认,在“远程IP地址”选择“下列IP地址”并点击“添加”。
- 输入域名解析到的服务器IP,点击确定。
- 协议类型选择TCP,特定本地端口填80,443。
- 操作选择“允许连接”,配置文件全选(域、专用、公用)。
- 命名规则,点击完成。
业内专家指出,Windows防火墙的多规则冲突时“阻止”优先级高于“允许”,所以如果之前建过阻止规则,哪怕这次加白也可能失效。
宝塔面板与云安全组:图形化替代方案
如果你用的是宝塔面板,操作更简单:宝塔后台 → 安全 → 系统防火墙 → 添加端口规则,选择“放行”,填入IP和端口。
但宝塔面板的防火墙仅管理服务器内部规则,云服务商的安全组是另一层拦截,以简米云为例,安全组规则出方向默认全放行,入方向默认只放行22端口(Linux)或3389端口(Windows),你需要到云控制台 → ECS实例 → 安全组 → 配置规则中,添加入方向规则,协议选TCP,端口填80/443,授权对象填域名解析的IP(格式如203.0.113.10/32)。
排查技巧:在本地电脑执行 telnet 服务器IP 80,如果提示无法连接,而防火墙规则已正常添加,那问题几乎就出在安全组上。
域名白名单配置要多久?生效时间与验证方法
加入白名单通常秒级生效,不需要重启服务器,但有个情况例外:如果服务器有Nginx层面的IP限制模块(如
allow和deny指令),修改配置文件后需要执行nginx -s reload才生效。
验证是否真正生效,最直观的方法是用本地电脑模拟真实访问,打开CMD或终端执行:
curl -I http://你的域名
观察HTTP状态码:
- 200/301/302:白名单已生效,访问正常。
- 403:IP被拒绝,规则没加对或顺序有误。
- 508/521:回源失败,说明CDN回源IP没放行。
另一个更严谨的验证方式是从非白名单IP测试,如果你用手机5G网络(独立IP)访问,能打开说明白名单限制正确,打不开则说明规则遗漏。
网站域名白名单添加方法:CDN与WAF特殊场景
使用CDN加速后,源站服务器收到的请求IP全部来自CDN节点,此时白名单不再针对访客IP,而是CDN回源IP段,云厂商各自公布了对应的IP段列表:
| 厂商 | 获取方式 |
|---|---|
| 简米云CDN | 控制台 → CDN → 服务IP列表 |
| 酷番云CDN | 控制台 → CDN → 回源配置 → IP段 |
| Cloudflare | 官网公开IP列表页面 |
如果使用Web应用防火墙(WAF),同样的逻辑:WAF回源IP才需加白,否则WAF转发请求会被服务器拒绝,造成“源站不可达”的报错。
特别提醒:加了CDN之后,域名解析指向的是CDN提供的CNAME,而不是服务器IP,此时你无需也不能将域名解析IP加入白名单(因为那是CDN的IP),只需放行CDN段即可。
域名白名单设置与国内备案的关联
国内服务器还有一个隐藏门槛:域名备案,根据工信部规定,域名解析到国内服务器必须先完成ICP备案,未备案的域名即使白名单配好,访问时也会被机房拦截,浏览器直接显示“该网站无法访问”。
如果在国内云服务器上操作,请先确认域名已完成备案,业界通行的检查方式是:登录域名服务商的企业侧备案系统,查看有没有备案号,如果域名备案在A厂商,但服务器在B厂商,需要先在B厂商做“接入备案”,流程大约3-15天不等,域名绑定的操作本身不受影响,但服务器侧会检查备案信息,未完成接入前白名单规则无法对外放行。
不同地域对备案审核的实际尺度也有差异。多数情况下,浙江、广东的审批速度相对较快,上海对涉及前置审批的行业审核更严,如果你计划用国内机房做企业站,建议提前至少一个月规划备案周期。
域名怎么加入服务器白名单?常见问题处理
白名单加对了,域名还是打不开怎么办?
检查顺序按照从外到里逐步排查:
- 确认域名解析记录的类型是A记录,而不是CNAME(除非指向CDN)。
- 在服务器上执行
curl http://127.0.0.1,若返回网页内容则Web服务正常,若连接拒绝说明Nginx/Apache没启动。 - 检查云安全组的入方向规则,是否包含了80/443端口及对应IP。
- 查看服务器系统防火墙日志,确认是否有拦截记录。
其中Web服务未启动是最隐蔽的原因,因为白名单和防火墙规则都配置正确,但服务本身没监听端口,症状完全相同。
多个域名共用一个服务器,白名单怎么加?
只需要在该服务器防火墙规则中添加一个IP段即可,所有解析到该IP的域名都受白名单管理,不需要逐条添加域名。
Q&A:域名白名单配置的疑难杂症
域名加入服务器白名单后,网站访问速度变慢是为什么?
白名单不参与流量转发,只做过滤判断,对请求速度几乎没有影响,如果明显变慢,多数是防火墙规则过多导致规则匹配性能下降,或者在白名单规则前存在大量DENY规则,服务器逐条比对耗时增加,建议精简规则数量,把常用IP段汇总放行。
域名白名单和IP黑名单同时存在时,哪个优先?
在iptables和云安全组中,白名单和黑名单的优先级是顺序敏感的,iptables按规则顺序匹配,一旦匹配即停止后续规则,云安全组中,不同云厂商策略不同,简米云是拒绝规则优先,酷番云是允许规则优先,配置时建议把精确的白名单规则放在最前面,避免被其他规则误拦截。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/744815.html





