apache不支持直接include纯ip列表文件,必须将每条ip封装为require ip指令并置于容器内;需在或块中先设require all denied,再include配置片段,最后可加require local补充回环,且须启用mod_remoteip适配cdn场景。

Apache 本身不支持直接用 Include 引入纯 IP 列表文件(如只写 192.168.1.0/24 的文本),必须配合正确的语法结构才能生效。简单把 IP 段堆进一个文件再 Include,Apache 启动会报错或规则完全不生效。
白名单文件需带完整 Require 指令
被 Include 的文件不是“数据列表”,而是可执行的 Apache 配置片段。每条 IP 或网段都必须包裹在 Require ip 中,并放在 <requireall></requireall> 或 <requireany></requireany> 容器里:
- 新建文件
/etc/httpd/conf/whitelist-local.conf,内容如下:
Require ip 192.168.0.0/16
Require ip 10.0.0.0/8
Require ip 172.16.0.0/12
Require ip 127.0.0.1
注意:IPv6 网段如 fd00::/8 也需写成 Require ip fd00::/8,不能省略前缀长度。
在主配置中正确引用
把 Include 放在具体的访问控制上下文中,例如 <directory></directory> 或 <location></location> 块内,并确保默认策略已明确:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 先设默认拒绝:
Require all denied - 再引入白名单:
Include /etc/httpd/conf/whitelist-local.conf - 最后允许匹配项:
Require local可选,用于补充本地回环
示例(用于后台目录):
Require all denied
Include /etc/httpd/conf/whitelist-local.conf
Require local
验证与维护要点
配置后必须严格验证,避免误锁或放行:
- 运行
apachectl configtest,确认输出Syntax OK - 重启服务用
systemctl reload httpd(非 restart,避免连接中断) - 测试时用局域网机器访问,同时用公网 IP 访问应返回
403 Forbidden - 修改白名单后只需 reload,无需重启整个 Apache
若使用 CDN 或反向代理,务必启用 mod_remoteip 并设置 RemoteIPHeader X-Forwarded-For,否则 Require ip 匹配的是代理 IP,不是真实客户端。










