一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Apache Directory 配置中允许特定 IP 访问如何设

时间:2026-08-08 13:54:48 编辑:袖梨 来源:一聚教程网

Apache 2.4中需先写Require all denied再叠加Require ip放行指定IP,路径必须绝对且严格匹配DocumentRoot;多条件组合须用<RequireAll>容器。

Apache 的 <Directory> 配置中允许特定 IP 访问,关键在于用 Require ip 显式放行、配合 Require all denied 默认拒绝,并确保路径绝对精准、指令语法符合 2.4+ 规范。

必须显式拒绝,默认不开放

Apache 2.4 起默认拒绝所有请求。不写 Require 就等于禁止访问,不能靠“不写就允许”来假设放开。

  1. 先写 Require all denied 确保基线安全
  2. 再叠加 Require ip 192.168.1.100Require ip 10.0.0.0/8 放行目标地址
  3. 多条 Require 默认是“或”关系:满足任一即通过

路径必须与 DocumentRoot 完全一致

<Directory> 块只对当前虚拟主机生效,路径必须是绝对路径,且严格匹配 DocumentRoot 设置。

  1. 如果 DocumentRoot "/var/www/example.com",就写 <Directory "/var/www/example.com">
  2. 不能简写成 <Directory "/var/www"> —— 这会跨站匹配,也可能不生效
  3. 子目录如后台路径单独定义:<Directory "/var/www/example.com/admin">

常用 IP 允许写法示例

支持单 IP、CIDR 网段、IPv6 地址,也支持域名(需 DNS 可解析):

  1. Require ip 127.0.0.1 —— 仅本机
  2. Require ip 192.168.5.0/24 —— 整个 C 类网段
  3. Require ip ::1 —— IPv6 本地回环
  4. Require ip 2001:db8::/32 —— IPv6 网段
  5. Require host example.com —— 允许该域名反向解析到的 IP

需要同时满足多个条件?用 RequireAll

比如“允许内网但排除某个测试 IP”,就得用容器组合逻辑:

<RequireAll>Require ip 192.168.0.0/16Require not ip 192.168.20.55</RequireAll>

注意:Require not ip 必须在 <RequireAll> 内才有效,单独写不构成“且”逻辑。

热门栏目