手动阀

Good Luck To You!

禁止IP访问网站的多种方法分享(linux,php,nginx,apache)

在Linux服务器上,通过不同的Web服务器(如Nginx和Apache)以及PHP脚本,有多种方法可以禁止特定IP地址访问网站,以下是一些常见的方法:

禁止IP访问网站的多种方法分享(linux,php,nginx,apache)

使用Nginx禁止IP访问

1、编辑Nginx配置文件

打开你的Nginx配置文件(通常是/etc/nginx/nginx.conf/etc/nginx/sitesavailable/default),找到你要配置的服务器块,添加以下代码:

   server {
       listen 80;
       server_name example.com;
       
       # IP Deny
       deny 192.168.1.100;
       allow all;
       location / {
           root /var/www/html;
           index index.php index.html index.htm;
           try_files $uri $uri/ =404;
       }
   }

这里,deny 192.168.1.100; 表示禁止该IP访问,allow all; 允许其他所有IP访问。

2、重启Nginx服务

保存文件后,重启Nginx服务以应用更改:

   sudo systemctl restart nginx

使用Apache禁止IP访问

1、编辑Apache配置文件

打开你的Apache配置文件(通常是/etc/httpd/conf/httpd.conf/etc/apache2/apache2.conf),或者在相应的虚拟主机配置文件中,添加以下代码:

   <Directory "/var/www/html">
       Order Deny,Allow
       Deny from all
       Allow from all
       Deny from 192.168.1.100
   </Directory>

这里,Deny from 192.168.1.100 表示禁止该IP访问。

2、重启Apache服务

保存文件后,重启Apache服务以应用更改:

   sudo systemctl restart httpd  # 对于CentOS/RHEL
   sudo systemctl restart apache2  # 对于Debian/Ubuntu

使用PHP禁止IP访问

如果你希望通过PHP脚本来禁止特定IP访问,可以在你的PHP代码中使用如下逻辑:

<?php
$denied_ip = '192.168.1.100';
if (in_array($_SERVER['REMOTE_ADDR'], explode(',', $denied_ip))) {
    header("HTTP/1.1 403 Forbidden");
    exit;
}
?>

将这段代码放在你希望限制访问的页面的顶部。

使用iptables禁止IP访问(适用于整个服务器)

如果你希望在整个服务器层面禁止特定IP访问,可以使用iptables规则:

sudo iptables A INPUT s 192.168.1.100 j REJECT

要使这个规则在重启后依然生效,可以将上述命令添加到启动脚本中,比如/etc/rc.local

使用防火墙(firewalld)禁止IP访问(适用于CentOS/RHEL)

sudo firewallcmd permanent addrichrule='rule family="ipv4" source address="192.168.1.100" reject'
sudo firewallcmd reload

方法可以根据具体需求选择一种或多种组合使用,无论是通过Web服务器配置、PHP脚本还是系统防火墙,都能有效地禁止特定IP地址访问你的网站。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.7.3

Copyright Your WebSite.Some Rights Reserved.