温馨提示×

centos apache怎么限制访问ip

小樊
41
2026-09-27 03:25:52
栏目: 智能运维

在 CentOS 上通过 Apache 限制访问 IP,常用做法是在 Apache 配置或 .htaccess 中使用 Require 指令(Apache 2.4)。下面按常见场景说明。


一、Apache 2.4(CentOS 7/8 默认)

1️⃣ 只允许指定 IP 访问(白名单)

编辑站点配置(如 /etc/httpd/conf.d/your-site.conf):

<Directory "/var/www/html">
    Require ip 192.168.1.100
    Require ip 10.0.0.0/24
</Directory>

✅ 以上表示 只允许 这些 IP 访问。


2️⃣ 禁止指定 IP 访问(黑名单)

<Directory "/var/www/html">
    Require all granted
    Require not ip 192.168.1.200
    Require not ip 203.0.113.0/24
</Directory>

3️⃣ 对整个网站限制(VirtualHost)

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/html

    <Directory "/var/www/html">
        Require ip 192.168.1.0/24
    </Directory>
</VirtualHost>

4️⃣ 使用 .htaccess(适合无服务器权限)

确保 Apache 允许 .htaccess:

<Directory "/var/www/html">
    AllowOverride All
</Directory>

然后创建 /var/www/html/.htaccess:

Require ip 192.168.1.100

修改后重启 Apache:

systemctl restart httpd

二、Apache 2.2(老版本,CentOS 6)

Order Deny,Allow
Deny from all
Allow from 192.168.1.100

三、只允许内网访问示例

Require ip 127.0.0.1
Require ip 192.168.0.0/16
Require ip 10.0.0.0/8

四、常见错误排查

  • ❌ 改了配置没生效 → 忘记 systemctl restart httpd
  • ❌ SELinux 阻止 → 可临时测试:
    setenforce 0
    
  • ❌ 被防火墙挡住 → 检查 firewalld

如果你能告诉我:

  • CentOS 版本
  • Apache 版本
  • 想限制整个站点还是某个目录

我可以给你更精确的配置。

0 踩