温馨提示×

linux nginx如何禁止ip

小樊
39
2026-10-10 20:57:29
栏目: 智能运维

在 Linux 下使用 Nginx 禁止某个 IP 或 IP 段访问,常见做法如下:


一、禁止单个 IP 访问

编辑 Nginx 配置文件(如 nginx.conf 或站点配置 /etc/nginx/conf.d/xxx.conf):

server {
    listen 80;
    server_name example.com;

    # 禁止 1.2.3.4 访问
    deny 1.2.3.4;
    allow all;
}

✅ deny 写在前面,allow all 放最后
✅ 支持 IPv4 / IPv6


二、禁止多个 IP

deny 1.2.3.4;
deny 5.6.7.8;
allow all;

三、禁止整个 IP 段(CIDR)

deny 192.168.1.0/24;
allow all;

四、在 location 中限制(更精细)

location /admin/ {
    deny 1.2.3.4;
    allow all;
}

五、使用 include 统一管理黑名单(推荐)

1️⃣ 创建黑名单文件

vim /etc/nginx/blockips.conf

内容:

deny 1.2.3.4;
deny 192.168.0.0/16;

2️⃣ 在 Nginx 中引入

include /etc/nginx/blockips.conf;

六、只允许某些 IP(白名单)

allow 10.0.0.1;
allow 127.0.0.1;
deny all;

七、修改后重载 Nginx

nginx -t
systemctl reload nginx

八、临时封 IP(系统层,可选)

iptables -A INPUT -s 1.2.3.4 -j DROP

或修改 /etc/hosts.deny


如果你需要:

  • ✅ 自动封恶意 IP
  • ✅ 结合 fail2ban
  • ✅ 只允许国内 IP
  • ✅ Nginx + CDN 场景

可以告诉我你的使用场景,我可以给你更合适的方案。

0 踩