# 网站的国家/地区屏蔽

Source: https://support.kapsulehost.com/zh-cn/site-geo-blocking

国家/地区筛选功能可让您屏蔽来自特定国家/地区的访客,或仅允许来自特定国家/地区的访客访问,该功能在服务器端根据每位访客的IP地址强制执行。本指南将介绍这两种模式、如何安全地设置它们、该功能能做什么和不能做什么,以及为什么它绝不会让您被锁定在KPanel之外。

## 国家/地区筛选功能在KPanel中的位置

国家/地区筛选功能在网站的左侧菜单中有自己的入口:打开**设置**,然后选择**国家/地区屏蔽**。您也可以通过网站的安全页面进入:

1. 登录[KPanel](https://kpanel.kapsulehost.com)。
2. 点击左侧边栏中的**网站**,然后点击相应网站。
3. 打开该网站的**安全**页面。在WordPress或WooCommerce网站上,依次点击**WordPress**,然后点击**安全**。在静态网站、PHP、Node.js、Python或Ruby网站上,则依次点击**设置**,然后点击**安全**。
4. 找到**国家/地区IP筛选**卡片,点击**配置**。

直达地址为`/websites/<site-id>/security/geo-block`。

![KPanel中某网站的国家/地区IP筛选](https://support.kapsulehost.com/help/screenshots/site-geo-blocking.467216eb.webp)

安全页面上的卡片也会在不打开完整页面的情况下概要显示当前状态:已选择多少个国家/地区,以及这些国家/地区是被屏蔽还是被允许。

## 两种模式

**阻止已选中的。** 除您勾选的国家/地区的访客外,所有流量均被允许通过。用于屏蔽某个特定的滥用来源,同时保持网站对所有其他人开放。这是安全的默认选择,也是大多数情况下的正确选择。

**仅允许选定的。** 除您勾选的国家/地区的访客外,所有流量均被阻止。适用于网站确实只面向单一市场、不面向其他任何地区的情况,例如内部工具或受区域许可限制的服务。

被阻止的请求会收到HTTP 403响应。

> **Warning:** "仅允许"模式的影响范围比看起来要大得多。它不仅会阻止人类访客,还会阻止来自您允许名单之外的搜索引擎爬虫、正常运行时间检测工具、支付服务商的回调请求以及webhook发送方。如果您使用该模式,请预先做好添加您未曾想到的国家/地区的准备,并在启用后持续观察您的流量情况。

## 设置方法

1. 打开国家/地区筛选页面。
2. 选择**阻止已选中的**或**仅允许选定的**。
3. 使用搜索框按名称或两字母代码查找国家/地区,点击每一个以将其勾选。页面顶部会显示实时计数以及**清除全部**链接。
4. 点击页面底部的按钮,该按钮上会显示**应用于**您所选择的国家/地区数量。

规则会在您保存的瞬间于服务器端生效。没有传播延迟,也无需等待缓存更新。

任何未保存的更改都会在按钮旁以**未保存的更改**提示标注,因此您不会误以为规则已应用而实际上只完成了一半设置。

## 空白允许名单的防护机制

在"仅允许选定的"模式下如果未选择任何国家/地区,就意味着"仅允许这零个国家/地区",这等同于屏蔽了地球上的每一位访客,使您的网站完全下线。

系统会拒绝这种组合。如果您尝试保存此设置,会收到一条错误提示,要求您至少添加一个国家/地区,或切换回阻止模式。该拒绝操作会同时在浏览器端和服务器端发生,因此不存在意外应用该设置的可能性。

> **Note:** 如需完全关闭筛选功能,请在**阻止已选中的**模式下清除所有国家/地区并保存。此时按钮会变为**清除规则**,之后所有流量将重新被允许通过。页面会确认这一点:在未选择任何国家/地区的情况下,所有流量均被允许。

## 您绝不会被锁定在KPanel之外

这是每个人都会问的问题,而答案是令人安心的。

KPanel由其自身独立的域名提供服务。您在此处创建的国家/地区规则适用于您的网站,而不适用于控制面板,因此即使是屏蔽您自己所在国家/地区的规则,也绝不会影响您登录、编辑规则或移除规则的能力。

最坏的情况不过是您将自己挡在了自己的网站之外,而这个问题您可以在KPanel中在几秒钟内解决。

## 该功能能做什么,不能做什么

国家/地区筛选功能是基于访客的IP地址强制执行的,这使它对普通流量来说是准确的,但对任何想要绕过它的人来说也很容易做到。

**它能够:**

- 大幅削减源自特定国家/地区的自动化扫描和低成本滥用行为。
- 减少您不提供服务的地区带来的负载和日志噪音。
- 执行一项简单明了的地理访问策略。

**它不能:**

- 阻止一位真正有决心的攻击者。任何使用VPN或代理的人看起来都像是身处别处,该页面也明确说明了这一点。
- 可靠地执行法律或许可方面的边界限制。请勿将其视为合规手段。
- 区分正在海外旅行的合法访客和不受欢迎的访客。正在度假的客户也会收到403响应。

请将其视为一种可降低流量的粗粒度过滤器,而非真正的安全边界。如需真正的边界防护,请使用身份验证功能:参见[为网站设置密码保护](https://support.kapsulehost.com/zh-cn/site-password-protect)。

## 与其他控制功能结合使用

国家/地区筛选是同一网站上多项访问控制功能之一,它们可以叠加使用:

- **IP 封禁**针对特定地址或地址段。当您明确知道问题来源时,这是更好的选择。参见[网站安全](https://support.kapsulehost.com/zh-cn/site-security)。
- **登录暴力破解保护**会监控失败的登录尝试,并自动封禁来源,这能在完全不涉及地理位置的情况下解决最常见的攻击。
- **密码保护**要求所有人、在任何地方都必须提供凭据,是这些功能中唯一真正构成边界防护的一项。
- **防盗链保护**可阻止其他网站嵌入您的媒体资源,这是一个带宽问题,而非访问控制问题。

如果您实际面临的问题是针对WordPress登录的暴力破解尝试,登录安全加固功能已经在处理这个问题,国家/地区筛选所能增加的作用不大。如果您的问题是内容抓取,那么国家/地区筛选加上防盗链保护是一个合理的组合。

## 故障排查

**合法访客报告收到403响应。** 请检查他们所在的国家/地区是否在您的屏蔽名单中,或是否不在您的允许名单中。正在旅行的客户以及经由其他国家/地区路由的移动网络通常是常见原因。

**启用"仅允许"模式后搜索流量下降。** 爬虫从您允许名单之外的地区访问您的网站,因而被屏蔽。您可以添加爬虫所使用的国家/地区,或切换到阻止模式,仅列出您实际想要屏蔽的国家/地区。

**正常运行时间监控开始失败。** 检测工具正被屏蔽。参见[网站正常运行时间监控](https://support.kapsulehost.com/zh-cn/site-uptime-monitoring),其中的事件原因会显示403响应。

**支付或webhook回调停止到达。** 第三方服务会从其自身的基础设施所在地调用您的网站,无论该地在何处。"仅允许"模式通常是罪魁祸首。

**保存失败并显示与服务器相关的错误信息。** 该规则未能成功应用,您之前的设置已被恢复,而不是以半完成状态遗留。请重试,如果持续失败,请提交工单。

**我想屏蔽单个滥发请求的地址,而不是整个国家/地区。** 请改用网站**安全**页面上的IP屏蔽名单。该方式更加精确,也不会产生附带影响。

## 相关页面

- [网站安全](https://support.kapsulehost.com/zh-cn/site-security):查看完整的安全页面,包括IP封禁和登录安全加固功能。
- [为网站设置密码保护](https://support.kapsulehost.com/zh-cn/site-password-protect):当您需要真正的访问边界时使用。
- [网站流量分析](https://support.kapsulehost.com/zh-cn/site-analytics):在屏蔽任何国家/地区之前,先查看您的流量实际来自哪些国家/地区。
