在 CentOS 上通过 Apache(httpd)限制 IP 访问,常见做法有几种,下面按使用场景说明。
编辑站点配置文件,例如:
vi /etc/httpd/conf/httpd.conf
# 或
vi /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>
<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>
systemctl restart httpd
<Directory "/var/www/html">
AllowOverride All
</Directory>
.htaccessvi /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
<Location /admin>
Require ip 192.168.1.0/24
</Location>
# 只允许某 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
如果你能说明:
我可以给你更精确的配置示例。