教程

Nginx 服务器屏蔽 IP 地址(段)的方法

发布日期:
更新日期:
Nginx 服务器屏蔽 IP 地址(段)的方法

Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在 BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上 nginx 的并发能力在同类型的网页服务器中表现较好,也正如此,越来越多的站长在建站配置环境时,会选择 Nginx 做为其 Web 服务器来使用。但是,使用 Nginx 时,往往会遇到各种各样层出不穷的恶意访问,比如:恶意攻击、采集复制、甚至镜像网站和恶意扫描文件,这些行为让您在使用 Nginx 时防不胜防,建个网站就要有操不完的心。

今天,我们就来教童鞋们如何去根除这些问题,我们只需使用 deny 命令来编写 Nginx 的 IP 黑名单,来有效的屏蔽恶意访问者的 IP 地址。那么,如我们使用 deny 命令来编写 Nginx 的 IP 黑名单呢,请继续往下看。

在我们进行操作前,需要先了解下 Nginx 的“deny”和“allow”命令:deny 为“禁止”,allow 为“允许”,需要注意的是,在 Nginx 的配置文件中,allow 必须在 deny 的前面,否则 allow 就会失效,有些时候我们还可能会用到“all”命令,它代表“全部”的意思。

例如:当我们想要“禁止”或“允许”所有地址,就可以使用“allow all”或“deny all”,来进行设置;如果是想要单独放行或者阻止某个 IP 地址(段),则可以直接添加相应命令即可。以下演示代码以 192.168.1.1 及相关地址段为示例:

Nginx
# 屏蔽命令详解
allow all; //放行所有
deny all; //屏蔽所有

allow 192.168.1.1; //放行单独 IP
deny 192.168.1.1; //屏蔽单独 IP

deny 192.0.0.0/8; //屏蔽 192.0.0.1192.255.255.254
deny 192.168.0.0/16; //屏蔽 192.168.0.1192.168.255.254
deny 192.168.1.0/24; //屏蔽 192.168.1.1192.168.1.254

通常情况下,我们只需修改要配置的 nginx.conf 文件,一般情况下路径为“/usr/local/nginx/conf”下。如果需要屏蔽的 IP 地址(段)数量较小的情况下,可以参考上面的代码示例,直接在 nginx.conf 内的“server”中添加需要 deny 的 IP 地址列表即可;如果需要屏蔽的 IP 地址(段)数量大,则建议使用文件格式屏蔽,我们单独新建一个“ipblack.conf”黑名单文件,名字随意但要注意文件路径,示例如下:

Nginx
# 默认配置文件路径
/usr/local/sbin/nginx

# 配置单独屏蔽和文件屏蔽
server {
    listen 80;
    listen [::]:80;
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    ...
    
    deny 192.168.1.1; //单独屏蔽
    deny 192.168.2.1; //单独屏蔽
    
    # 二选一
    
    include ipblack.conf; //通过文件屏蔽,
    
    ...
}

如果你使用了第二种方法,即使用了单独的黑名单文件,只需将“deny”要屏蔽的地址一一放进去即可,一行一条,配置完成后,重新加载 Nginx 配置文件或者重启 Nginx 服务即可生效。在这里,我们更加推荐使用单独文件管理的方式,这样更加方便编辑管理,还不容易导致新手出错,希望对大家有所帮助。如果您有更好的方法和建议,欢迎在评论区留言告诉我们,我们期待和您的互动。

郑重声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

您认为这篇文章有用吗?

点击下方为它评星!

平均星级: 5 / 5. 评星数: 1

暂无评星,立刻首评!

本文作者:Yephy Wang

WordPress建站帮创始人

如果本文“对您有用”,欢迎随意打赏 WordPress 建站帮,让我们坚持创作!
赞赏一杯咖啡

赞赏 WordPress 建站帮

赞赏二维码

请通过支付宝、微信 APP 扫一扫,海外读者可「使用 PayPal 赞赏

“ 感谢您对 WordPress 建站帮的支持! ”

发表评论