温馨提示×

centos apache如何限制ip访问

小樊
45
2026-10-17 14:28:33
栏目: 智能运维

在 CentOS 上通过 Apache(httpd)限制 IP 访问,常见做法有几种,下面按使用场景说明。


一、使用 Apache 配置文件限制 IP(推荐)

1. 修改 Apache 虚拟主机或目录配置

编辑站点配置文件,例如:

vi /etc/httpd/conf/httpd.conf
# 或
vi /etc/httpd/conf.d/your-site.conf

2. 限制整个网站或目录

✅ 只允许指定 IP 访问

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

❌ 拒绝指定 IP 访问

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

只允许内网访问

<Directory "/var/www/html/admin">
    Require ip 192.168.0.0/16
</Directory>

3. 重启 Apache

systemctl restart httpd

二、使用 .htaccess 限制 IP(适合无服务器权限修改)

1. 确保 Apache 允许 .htaccess

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

2. 创建或编辑 .htaccess

vi /var/www/html/.htaccess

示例:

Require ip 203.0.113.5
Require ip 192.168.1.0/24

或拒绝 IP:

Require all granted
Require not ip 1.2.3.4

三、限制特定 URL 或后台访问

<Location /admin>
    Require ip 192.168.1.0/24
</Location>

四、结合防火墙(iptables / firewalld)限制(系统级)

firewalld(CentOS 7+)

# 只允许某 IP 访问 80/443
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="80,443" accept'
firewall-cmd --reload

五、常见错误排查

✅ Apache 2.4 使用 Require 语法
❌ 不要再使用 Order allow,deny

查看错误日志:

tail -f /var/log/httpd/error_log

如果你能说明:

  • CentOS 版本
  • Apache 版本
  • 是限制整个站、某个目录还是 API

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

0 踩