Nginx IP黑名单设置(手把手教你阻止恶意IP访问)

V5主机测评

在运维网站或Web应用时,你可能会遇到某些IP地址频繁发起恶意请求,比如暴力破解、爬虫攻击、DDoS尝试等。为了保护你的服务器和用户数据,Nginx IP黑名单是一种简单而有效的防御手段。本文将从零开始,详细讲解如何在Nginx中设置IP黑名单,即使是刚接触服务器的小白也能轻松上手。

Nginx IP黑名单设置(手把手教你阻止恶意IP访问)

什么是Nginx IP黑名单?

Nginx IP黑名单是指通过配置Nginx服务器,拒绝特定IP地址或IP段的访问请求。当黑名单中的IP尝试访问你的网站时,Nginx会直接返回403 Forbidden错误,从而有效防止恶意行为。

准备工作

在开始之前,请确保:

  • 你已安装并运行了Nginx(版本不限,主流版本均可)
  • 你有服务器的root或sudo权限
  • 你知道要屏蔽的IP地址(可通过日志分析获得)

方法一:在server块中直接添加deny规则

这是最简单的方法,适合屏蔽少量IP。

打开你的Nginx站点配置文件(通常位于 /etc/nginx/sites-available//etc/nginx/conf.d/ 目录下),找到对应的 server 块,在其中加入 deny 指令:

server {    listen 80;    server_name example.com;    # 黑名单IP    deny 192.168.1.100;    deny 203.0.113.50;    deny 198.51.100.0/24;  # 屏蔽整个IP段    # 允许其他所有IP    allow all;    location / {        root /var/www/html;        index index.html;    }}  

注意:deny 规则的顺序很重要!Nginx会按顺序匹配规则,一旦匹配成功就执行对应操作。因此,deny 必须写在 allow all; 之前。

方法二:使用独立的黑名单文件(推荐)

如果你需要管理大量IP,建议使用单独的黑名单文件,便于维护。

步骤如下:

  1. 创建一个黑名单文件,例如 /etc/nginx/blacklist.conf
# /etc/nginx/blacklist.confdeny 192.168.1.100;deny 203.0.113.50;deny 198.51.100.0/24;deny 203.0.113.0/24;  
  1. 在你的站点配置文件中引入该文件:
server {    listen 80;    server_name example.com;    include /etc/nginx/blacklist.conf;    allow all;    location / {        root /var/www/html;        index index.html;    }}  

测试与重载配置

修改完配置后,务必进行以下操作:

  1. 检查Nginx配置语法是否正确:
sudo nginx -t
  1. 如果显示“syntax is ok”,则重载Nginx使配置生效:
sudo systemctl reload nginx

现在,黑名单中的IP将无法访问你的网站,会看到 403 Forbidden 错误页面。

常见问题与技巧

  • 如何查看被拦截的IP? 查看Nginx访问日志(通常为 /var/log/nginx/access.log),搜索403状态码。
  • 能否只屏蔽某个路径? 可以!把 deny 放在特定的 location 块中即可。
  • IP段怎么写? 使用CIDR表示法,如 192.168.0.0/16 表示192.168.x.x整个网段。

结语

通过以上步骤,你已经成功掌握了Nginx安全配置中最基础也最实用的技能之一——设置IP黑名单。这不仅能有效防止恶意访问,还能减轻服务器负载,提升整体安全性。结合日志分析工具,你可以动态更新黑名单,实现更智能的Nginx访问控制

赶快动手试试吧!如有疑问,欢迎在评论区留言交流。

文章版权声明:除非注明,否则均为V5主机测评网_性价比VPS_性价比云服务器_免费独立服务器原创文章,转载或复制请以超链接形式并注明出处。