Apache层IP网段访问隔离的核心是通过Require ip指令在或中显式允许可信内网网段(如192.168.0.0/16、172.16.0.0/12、10.0.0.0/8)及Require local,其余请求默认403拒绝;无需Require all denied,且须避免误配0.0.0.0/0,配置应独立抽离以防误上线生产环境。

Apache 层用 IP 网段做访问隔离,核心是让内网开发环境只响应来自可信内网地址的请求,同时默认拒绝公网流量——不靠防火墙,也不改网络拓扑,纯靠 Web 服务层控制。
明确内网与公网的地址范围
先确认你实际使用的内网网段。常见情况包括:
- 办公局域网:192.168.0.0/16、172.16.0.0/12 或 10.0.0.0/8
- 云服务器私有网络(如阿里云 VPC):例如 172.19.0.0/16,需查控制台确认
- 本地开发测试:127.0.0.1 和 ::1(IPv6 回环)也必须显式允许
公网 IP 无需单独列出,只要没被明确允许,就自然被拒。注意避免把 0.0.0.0/0 这类通配写进 Require ip,否则等于放行全部。
在 Directory 或 VirtualHost 中配置网段限制
推荐在虚拟主机或站点根目录的 块中设置,例如:
<directory>
Require ip 192.168.1.0/24
Require ip 172.19.0.0/16
Require local
</directory>
这段配置表示:仅接受来自 192.168.1.x、172.19.x.x 及本机的请求,其余一律返回 403。不需要加 Require all denied,因为 Apache 2.4 默认策略是“未明确允许即拒绝”。
若开发环境部署在子路径(如 /dev-api),可用 替代 ,效果一致。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
区分开发与生产配置,避免误推上线
不要把开发专用的 IP 限制直接写进生产站点的主配置。稳妥做法是:
- 为开发环境单独定义一个
或绑定到非标准端口(如 8081) - 在该虚拟主机内部启用网段限制,生产站点(
*:80或*:443)保持开放或走其他鉴权逻辑 - 用
Include conf/dev-access.conf把开发访问策略抽离成独立文件,上线前删掉这行即可
这样即使配置文件同步到生产机,也不会影响线上服务。
验证与调试要点
配置后务必验证,重点看三类行为是否符合预期:
- 从内网机器 curl -I http://dev.example.com → 应返回 200
- 从公网机器(如手机热点)访问 → 应返回 403 Forbidden
- 从服务器本机 curl -H "Host: dev.example.com" http://127.0.0.1 → 必须能通(
Require local起作用)
若出错,检查错误日志:tail -f /var/log/httpd/error_log,常见报错如 “client denied by server configuration”,说明规则已生效但匹配失败;若无日志且访问成功,可能是配置没加载或位置写错(比如放在了 里)。










