LOGO 首页 OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 技术文档 其他文档  
 
网站管理员

Nginx 如何配置允许指定 IP 段访问 以及 /24 详解

admin
2026年10月19日 22:39 本文热度 156

Nginx 配置允许指定 IP 段访问

一、需求与结论

假设你要在 Nginx 中只允许:

192.168.1.1 ~ 192.168.1.124

访问某个站点或目录。

Nginx 的 allow / deny 指令只支持:

  • 单个 IP,例如 192.168.1.10
  • CIDR 网段,例如 192.168.1.0/24

它不支持这种写法:

allow 192.168.1.1-192.168.1.124;  # 错误

所以必须把 IP 范围拆成多个 CIDR 段,再按顺序配置。


二、精确覆盖 192.168.1.1 ~ 192.168.1.124

如果要求精确覆盖 .1 到 .124,可以这样拆:

server {    listen 80;    server_name example.com;    location / {        allow 192.168.1.1/32;      # 1        allow 192.168.1.2/31;      # 2-3        allow 192.168.1.4/30;      # 4-7        allow 192.168.1.8/29;      # 8-15        allow 192.168.1.16/28;     # 16-31        allow 192.168.1.32/27;     # 32-63        allow 192.168.1.64/27;     # 64-95        allow 192.168.1.96/28;     # 96-111        allow 192.168.1.112/29;    # 112-119        allow 192.168.1.120/30;    # 120-123        allow 192.168.1.124/32;    # 124        deny  all;        root  /var/www/html;        index index.html;    }}

注意:deny all; 必须放在最后。Nginx 按顺序匹配,命中第一条 allow 或 deny 就生效。


三、简化写法

如果 .0、.125、.126、.127 这些地址实际不会使用,可以简化为:

allow 192.168.1.0/25;   # 覆盖 192.168.1.0 ~ 192.168.1.127deny  all;

这样写更简单,但范围会比 .1 ~ .124 略宽,会额外允许 .0 和 .125 ~ .127。

如果只是想允许整个 192.168.1.x 网段,则可以用 /24:

allow 192.168.1.0/24;deny  all;


四、/24 是多少?

/24 是 CIDR 表示法,表示子网掩码:

255.255.255.0

以 192.168.1.0/24 为例:

项目
值
子网掩码
255.255.255.0
网络前缀
24 位
主机位
8 位
总 IP 数
256 个
IP 范围
192.168.1.0 ~ 192.168.1.255
传统可用主机
254 个,通常 .0 是网络地址,.255 是广播地址

在 Nginx 中:

allow 192.168.1.0/24;deny  all;

表示允许整个 192.168.1.0 ~ 192.168.1.255 访问。Nginx 层面会匹配这 256 个地址。


五、只限制某个路径

如果只想保护后台或管理目录:

location /admin/ {    allow 192.168.1.0/25;    deny  all;    proxy_pass http://127.0.0.1:8080;}

这样只有指定 IP 段能访问 /admin/,其他 IP 返回 403。


六、全局限制

也可以放在 http、server 或 location 块中:

http {    allow 192.168.1.0/25;    deny  all;}

一般建议放在 server 或 location 中,避免影响所有站点。


七、反向代理后如何拿到真实 IP

如果 Nginx 前面还有负载均衡、CDN 或反向代理,$remote_addr 拿到的可能是代理 IP,而不是客户端真实 IP。

这时需要配置真实 IP 模块:

set_real_ip_from 10.0.0.0/8;      # 你信任的代理网段real_ip_header   X-Forwarded-For;real_ip_recursive on;

配置后,allow / deny 才会按客户端真实 IP 生效。


八、常见坑

  1. Nginx 不支持 IP 范围写法
    192.168.1.1-192.168.1.124 必须拆成 CIDR。

  2. deny all; 要放最后
     Nginx 按顺序匹配,放错位置会导致规则不符合预期。

  3. 403 Forbidden
     通常是被 deny all; 拦截,检查 CIDR 是否写错。

  4. 反向代理下 IP 不生效
     检查是否配置了 set_real_ip_from、real_ip_header。

  5. 修改后验证并重载

    nginx -t && nginx -s reload

九、CIDR 速查表

CIDR
可用地址数
子网掩码
/24
256
255.255.255.0
/25
128
255.255.255.128
/26
64
255.255.255.192
/27
32
255.255.255.224
/28
16
255.255.255.240
/29
8
255.255.255.248
/30
4
255.255.255.252
/31
2
255.255.255.254
/32
1
255.255.255.255

十、总结

  • Nginx 用 allow / deny 做 IP 访问控制。
  • 不支持 192.168.1.1-192.168.1.124,必须拆成 CIDR。
  • 精确覆盖 .1 ~ .124 可以用多个 CIDR 段。
  • 如果允许整个 192.168.1.x,直接写 192.168.1.0/24。
  • /24
     表示 255.255.255.0,范围是 192.168.1.0 ~ 192.168.1.255。
  • 前面有代理时,要配置真实 IP,否则 allow / deny 可能失效。


阅读原文:原文链接


该文章在 2026/10/20 12:28:28 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved  粤ICP备13012886号-1  粤公网安备44030602007207号