屏蔽ip访问项目操作

nignx

  1. 查找要屏蔽的ip

在nginx配置文件下,运行如下命令,查找访问的ip列表
awk '{print $1}' access.log |sort |uniq -c|sort -n
access.log 为日志文件,通过以上命令得到如下结果:
格式:
前面是ip的访问次数,后面是ip
... 
 1000 180.153.123.35
 1231 201.35.154.189
 4564654 226.210.2.135
 ...

2.在nginx的配置目录下面,新建屏蔽ip文件

命名为block.conf,以后新增加屏蔽ip只需编辑这个文件就可以啦,这里以屏蔽226.210.2.135这个ip为例:
vi block.conf
加入以下内容,然后wq保存:
deny 165.91.122.67; 

3.在nginx的配置文件nginx.conf中加入block.conf配置

可以放到http, server, location, limit_except语句块,需要注意相对路径,本例当中nginx.conf,block.conf在同一个目录中,要加入的语句如下:
include block.conf; 

4.重启一下nginx的服务

重启一下nginx的服务,配置生效,重启命令如下:
/usr/local/nginx/nginx -s reload 

5.高级用法

屏蔽ip的配置文件既可以屏蔽单个ip,也可以屏蔽ip段,或者只允许某个ip或者某个ip段访问
# 屏蔽单个ip访问
deny IP; 

#允许单个ip访问
allow IP; 

#屏蔽所有ip访问
deny all; 

#允许所有ip访问
allow all; 

#屏蔽整个段即从123.0.0.1到123.255.255.254访问的命令
deny 123.0.0.0/8

#屏蔽IP段即从123.25.0.1到123.25.255.254访问的命令
deny 124.25.0.0/16

#屏蔽IP段即从123.25.6.1到123.25.7.254访问的命令
deny 123.25.7.0/24

#如果想实现这样的应用:除了几个IP外,其他全部拒绝,就这样写
#注意:allow必须在deny的前面配置,不然allow不生效
allow IP1; 
allow IP12;
deny all; 
单独网站屏蔽IP的方法:
把include blocks.conf; 放到网址对应的在server{}语句块
所有网站屏蔽IP的方法:
把include blocks.conf; 放到http {}语句块

.htaccess

除了修改Nginx配置文件之外,还可以通过修改网站配置文件.htaccess来限制某IP(段)访问

1.屏蔽ip

将下面内容保存为.htaccess文件,上传至网站根目录,如果原来已经存在.htaccess文件的,将以下内容加到该文件开头
Order allow,deny
allow from all
deny from IP1  // 需要屏蔽的IP

2.屏蔽IP的某个段

如果要限制一个IP段,比如要限制110.110.110.*这个C段,则这样配置
Order allow,deny
allow from all
deny from 110.110.110
以上内容表示拒绝110.110.110开头的所有IP,其他IP允许

3.屏蔽多个IP段

多个IP中间用空格隔开
Order allow,deny
allow from all
deny from 111.111.111 111.222.222 111.333.333

3.总结

该配置不用重启web服务器,修改立即生效
此外,该方法适用任何web网站,例如IIS、Apache网站

你可能感兴趣的:(Linux,服务器,#,nginx,nginx,运维,linux,allow,deny)