怎么通过Apache配置实现对内网开发环境的IP白名单限制

夜伟大大_3858

夜伟大大_3858

2026-04-05

265人浏览

原创

Apache 2.4 必须用 Require ip 配合 RequireAll/RequireAny,旧版 Order 指令已失效;授权模型为默认拒绝,需显式允许内网IP,如 Require all denied 后跟 Require ip 192.168.10.0/24 和 10.0.5.22。

怎么通过apache配置实现对内网开发环境的ip白名单限制

Apache 2.4 中用 Require ip 实现内网IP白名单

直接结论:Apache 2.4 必须用 Require ip 指令配合 RequireAll / RequireAny 容器,Order Allow,Deny 这类旧语法在新版里完全失效,配置后 403 却没报错?大概率是模块没启用或语法写错。

关键点在于 Apache 2.4 的授权模型已改为“默认拒绝”,不显式允许即拦掉。所以白名单不是“只放行某些IP”,而是“拒绝所有,再单独放行指定IP”。

  • mod_authz_host 必须启用(2.4 默认开启,但精简版容器或自编译环境可能未加载)
  • 配置必须放在 、 或虚拟主机段内,不能只写在全局 ServerConfig
  • 内网地址要写完整,比如 192.168.1.0/24,不能只写 192.168.1

如何正确配置开发目录的白名单访问

假设你的开发代码放在 /var/www/dev-site,只想让公司内网 192.168.10.0/24 和测试机 10.0.5.22 访问,其他一律 403:

<directory>
    Require all denied
    Require ip 192.168.10.0/24
    Require ip 10.0.5.22
</directory>

注意顺序无关——Require 是“满足任一即可通过”,但前面的 Require all denied 是兜底拒绝。如果漏掉这句,Apache 会按默认策略(通常是 Require all granted)放行,白名单就形同虚设。

  • 多个 Require ip 行是“或”关系,不是“且”
  • IPv6 地址需用方括号,如 Require ip "2001:db8::/32"
  • 若开发机走 NAT 或反向代理(比如前端用 Nginx 转发),Require ip 匹配的是代理 IP,不是真实客户端 IP,此时需配合 RemoteIPHeader 和 RemoteIPInternalProxy

为什么本地 127.0.0.1 访问也被拒了?

常见现象:配置完白名单,自己在服务器本机用 curl http://localhost 或浏览器访问直接 403。这是因为 127.0.0.1 不在你写的任何网段里。

解决方法很简单,在白名单里显式加上本地回环:

Require ip 127.0.0.1
Require ip ::1

别指望 Apache 自动识别 localhost —— 它只看 TCP 层实际源 IP。另外,Docker 容器内访问宿主机 Apache 时,源 IP 往往是 172.17.0.1 这类网桥地址,也得单独加进白名单。

调试白名单是否生效的最快方式

别靠反复刷新网页猜,直接查 Apache 的访问日志和错误日志:

  • 在 Require 规则后加 LogLevel authz_core:trace4(仅临时),然后 tail -f /var/log/apache2/error.log 看每条请求的授权决策链
  • 确认日志中出现类似 [authz_core:debug] ... AH01626: authorization result of Require ip ...: denied 或 granted
  • 用 curl -v http://your-dev-site/ --interface 192.168.10.5 强制绑定某内网 IP 发起请求,验证匹配逻辑

最常被忽略的一点:Apache 配置修改后必须 apachectl graceful 或 systemctl reload apache2,restart 有时会中断连接,而 graceful 才能确保新配置热生效且不丢请求。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

980

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

3352

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

1096

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

989

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

514

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

3076

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5812

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

887

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习