如何在 Cloudflare 防火墙规则中屏蔽特定国家 IP 访问?

文章导读
在 Cloudflare 防火墙规则中屏蔽特定国家 IP,需进入控制台「安全性」>「WAF」创建自定义规则,字段选择「国家/地区」,动作设为「阻止」。此方法适用于云端流量清洗场景,但需注意可能误伤使用该国出口 IP 的正常用户。
📋 目录
  1. A 快速处理思路
  2. B 为什么会这样
  3. C 分步处理
  4. D 怎么验证是否生效
  5. E 常见坑
  6. F 常见问题
  7. G 参考来源
A A

在 Cloudflare 防火墙规则中屏蔽特定国家 IP,需进入控制台「安全性」>「WAF」创建自定义规则,字段选择「国家/地区」,动作设为「阻止」。此方法适用于云端流量清洗场景,但需注意可能误伤使用该国出口 IP 的正常用户。

先说结论:Cloudflare 支持通过 WAF 自定义规则基于地理位置(国家/地区)拦截流量,无需修改源站服务器配置。

  • 适合:希望在全球边缘节点直接拦截流量,减轻源站压力的网站。
  • 先准备:确认目标国家的 ISO 3166-1 alpha-2 代码(如 CN、US),并评估业务是否依赖该地区用户。
  • 验收:规则部署后,通过该地区网络环境测试访问,确认返回 403 或拦截页面。

快速处理思路

若需立即生效且不影响源站,优先使用 Cloudflare 仪表盘配置 WAF 规则。路径为:登录 Cloudflare 官网 > 选择域名 > 安全性 > WAF > 创建规则。若需在源站二次确认,可配合 Nginx 读取 CF-IPCountry 请求头进行二次过滤。

为什么会这样

Cloudflare 通过 IP 地理位置数据库识别访客国家,并在请求头中传递国家代码。Cloudflare 默认开启 IP Geolocation 选项,会发送访问者的国家代码参数到源站,同时也支持在边缘节点直接根据该数据执行防火墙动作。

分步处理

以下是基于 Cloudflare 控制台配置防火墙规则的具体步骤:

如何在 Cloudflare 防火墙规则中屏蔽特定国家 IP 访问?
  1. 进入防火墙设置:登录 Cloudflare 控制台,选择目标域名,点击左侧「安全性」,进入「WAF」页面。
  2. 创建自定义规则:点击「创建规则」,输入规则名称(如 Block Specific Country)。
  3. 配置匹配字段:在「字段」下拉菜单中选择「国家/地区」,运算符选择「等于」(屏蔽特定国家)或「不等于」(仅允许特定国家)。
  4. 设定目标值:在「值」中选择或输入目标国家代码,例如屏蔽加拿大选择 CA,仅允许中国选择 CN。
  5. 选择动作:在「则采取」选项中选择「阻止」(Block),也可选择「质询」或「重定向」。
  6. 部署规则:点击右下角「部署」按钮,规则即刻生效。

怎么验证是否生效

验证规则生效需结合日志分析与实地测试。在 Cloudflare 控制台「安全性」>「事件」中查看是否有被阻止的请求记录,筛选条件设为规则名称。若具备条件,使用目标国家的代理网络或服务器发起请求,预期应收到 403 Forbidden 响应或 Cloudflare 拦截页面。

常见坑

  • 特殊国家代码:Cloudflare 使用 XX 表示无国家代码数据,T1 表示 Tor 网络,配置时需考虑是否一并屏蔽。
  • 误伤风险:屏蔽国家段可能影响该国正常用户或使用该国出口 IP 的跨国业务,建议先观察日志再全量拦截。
  • 源站暴露:若源站 IP 已泄露,仅靠 Cloudflare 规则无效,需确保源站防火墙仅允许 Cloudflare IP 段访问。

常见问题

如何仅允许中国访问,屏蔽其他国家?

在 WAF 规则中,字段选择「国家/地区」,运算符选择「不等于」,值选择「China」,动作设为「阻止」。

Cloudflare 免费套餐支持国家屏蔽吗?

支持。Cloudflare 免费套餐包含自定义防火墙规则功能,可用于基于国家的访问控制。

如何在 Nginx 中配合 Cloudflare 进行国家屏蔽?

在 Nginx 配置中读取 $http_cf_ipcountry 变量,若值不符合预期则返回 404 或 403 状态码。

参考来源

  • cloudflare 怎样屏蔽某个国家的 IP? - 简介 方法/步骤(2019 年 12 月 8 日的资料)
  • cloudflare 配置防火墙 WAF 阻止或允许特定国家或地区访问_clouldfarewaf 设置-CSDN 博客(撰于 2023 年 9 月 19 日)
  • Cloudflare + nginx 限制 ip 访问的几种方式 (白嫖 cloudflare 的 ip 数据库)(2025 年 8 月 22 日)
  • 网站服务器如何屏蔽所有国外 ip 的用户访问?(资料日期为 2025 年 2 月 25 日)