You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Varnish的acl unwanted配置正确的子网IP封禁语法?

Varnish IP封禁配置修正方案

问题分析

你当前的VCL配置无法生效,核心问题是ACL中的IP格式不符合Varnish要求:

  • "45.77"这种写法未指定子网掩码,Varnish无法识别为有效网段;
  • 虽"45.32"/24和"45.76"/24格式正确,但ACL规则会因无效条目导致匹配失败。

正确配置示例

acl unwanted {
    "45.32.0.0"/24;  # 完整CIDR格式,匹配45.32.0.0-45.32.0.255
    "45.76.0.0"/24;  # 同上,匹配45.76.0.0-45.76.0.255
    "45.77.0.0"/16;  # 封禁整个45.77网段需指定/16子网掩码
    # 若要封禁单个IP,写法为:"45.77.xxx.xxx";
}

sub vcl_recv {
    if (client.ip ~ unwanted) {
        return(synth(403, "Access denied"));
    }
}

关键注意事项

  • IP格式规范:Varnish的ACL仅支持完整IP(如"192.168.1.100")或CIDR网段格式(如"192.168.1.0"/24),不支持"45.77"这类不完整网段写法;
  • 配置生效步骤:修改VCL后,需执行varnishadm vcl.load new_config /path/to/your.vcl加载新配置,再用varnishadm vcl.use new_config切换生效;
  • 代理场景适配:若Varnish部署在反向代理(如Nginx)之后,client.ip会获取代理服务器IP,需先在代理层传递真实客户端IP(如设置X-Forwarded-For),再在VCL中改用req.http.X-Forwarded-For进行匹配。

测试验证

用curl模拟指定IP访问,验证封禁效果:

curl -H "X-Forwarded-For: 45.77.1.1" http://your-domain.com
# 或直接从目标IP服务器发起请求,查看是否返回403

内容的提问来源于stack exchange,提问作者user3004118

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 19:52:19