# 使用 Cloudflare 或其他代理与 KapsuleHost

Source: https://support.kapsulehost.com/zh-cn/using-cloudflare-with-kapsule

如何在 KapsuleHost 网站前面放置第三方代理或 CDN，包括破坏网站的两个设置、绝不能被代理的记录，以及如何撤销它。

KapsuleHost 运行自己的名称服务器和自己的全球边缘网络，因此第三方代理提供的大部分功能已经在这里可用，并且集成和受支持。如果需要，您仍然可以在前面放置一个。本页介绍如何操作以及需要付出的代价。

> **Note:** 如果您只需要缓存和全球边缘，请改用 Kapsule CDN。它与面板集成，保持客户端 IP 地址完整，不需要额外账户。请参阅 [启用 CDN](https://support.kapsulehost.com/zh-cn/cdn-enabling)。

## 您获得的和您放弃的

| 您获得 | 您放弃 |
|---|---|
| 他们的防火墙、机器人规则和速率限制 | 我们这边的真实访客 IP 地址，永久性地 |
| 他们的分析仪表板 | KPanel 中精确的地理位置阻止和 IP 阻止 |
| 在他们的边缘进行 DDoS 吸收 | 管理 DNS、SSL 和缓存的单一地点 |
| 页面规则和边缘重定向 | 我们为您诊断完整请求路径的能力 |
| 第二层缓存，如果需要的话 | Kapsule CDN，您应该关闭它 |

出于您已测试并需要的特定功能而迁移是个很好的理由。由于论坛帖子说这样做而迁移，意味着用不受支持的设置替换受支持的设置。

请注意，Cloudflare 在其免费和专业计划上要求您将整个域委派给他们的名称服务器：完整（主要）设置是唯一选项，CNAME（部分）设置只在商业和企业计划中可用。在入门级计划上，您无法代理一个主机名而将其余 DNS 保留在我们这里。移动名称服务器会移动所有内容：网络记录、邮件记录、验证记录，全部。

## 破坏一切的两个设置

### 1. 使用完整（严格）SSL，绝不使用灵活

您的 KapsuleHost 网站有真实的公开信任证书，并将纯 HTTP 重定向到源的 HTTPS。

如果您的代理设置为**灵活** SSL，它将通过纯 HTTP 与您的源通信。您的源将其重定向到 HTTPS。代理再次通过 HTTP 获取它。循环往复。访客看到 `ERR_TOO_MANY_REDIRECTS`，网站无法使用。

将 SSL 模式设置为**完整（严格）**。您的源证书有效且公开信任，因此严格验证通过。这是代理切换后网站破坏的最常见原因。

### 2. 不要拦截证书质询路径

证书通过在 `/.well-known/acme-challenge/` 的纯 HTTP 上证明域控制权来发布和续期。该请求必须到达 KapsuleHost 源并返回精确答案。代理处的任何内容拦截它都会破坏发布，三个月后会破坏续期：

- 机器人保护、"遭受攻击"模式或任何提供插页式页面的托管质询。
- 防火墙、自定义或页面规则，这些规则在路径或用户代理上匹配，或重写路径。
- 缓存为质询路径提供陈旧 404 的行为。
- 在证书存在之前强制质询路径本身使用 HTTPS。

添加显式规则，从这些功能中的每一个排除 `/.well-known/`。

> **Warning:** 这种故障是延迟的且无声的。发布今天成功，然后在大约 60 天内续期悄悄失败，一个早上每个访客都会收到证书警告。如果您稍后开启机器人保护，请同时添加排除。

通过 KapsuleHost 订购的付费证书改为通过 DNS 验证，因此代理不会影响这些证书。请参阅 [SSL 证书](https://support.kapsulehost.com/zh-cn/ssl-certificates)。

## 将您的 DNS 移动到 Cloudflare

**第 1 步：复制您当前的记录。** 在 KPanel 中打开您网站的 **DNS** 选项卡，记下每条记录：类型、名称、值、优先级。不要跳过您不认识的记录。第三方验证记录和下面的邮件记录是人们丢失的。自动导入器经常遗漏记录，因此此列表是您检查导入的依据，也是您稍后从中恢复的内容。

**第 2 步：添加域并检查导入。** 在 Cloudflare 中添加域并让其扫描您的 DNS。将结果逐行与您的列表进行比较，并手动添加遗漏的任何内容。值必须完全匹配，包括尾部句点和 `TXT` 记录上的引号。

**第 3 步：决定代理的内容。** 每条记录都有代理切换，通常是橙色或灰色云。代理意味着该主机名的流量通过他们的网络；未代理意味着 DNS 直接解析到真实地址。仅代理提供网站流量的记录。下一部分是明确的列表。

**第 4 步：更改名称服务器。** 仅在记录正确后，将域指向 Cloudflare 提供给您的名称服务器。如果域注册于 KapsuleHost，请使用 **Nameservers** 页面，详见 [名称服务器](https://support.kapsulehost.com/zh-cn/nameservers)。否则使用您的域名注册商的面板。委派需要几分钟到几小时才能在各处可见。

> **Warning:** 委派后不要删除 KPanel 中的区域。保持它不花费任何费用，如果迁移出现问题，它是您恢复的副本。

## 绝不能被代理的记录

代理不是网络流量的记录不会保护它。它将答案替换为代理的地址，因此另一端的服务停止工作。

| 记录 | 代理？ | 原因 |
|---|---|---|
| 裸域和 `www` | 是，如果您想要代理的话 | 这是网络流量 |
| `MX` 记录 | **绝不** | 代理无法承载 SMTP。这破坏所有传入邮件 |
| MX 指向的邮件主机名 | **绝不** | 它必须解析到真实邮件服务器 |
| `SPF`、`DKIM`、`DMARC` | 无切换存在 | 完全按原样重新创建 |
| Autodiscover 和 autoconfig | **绝不** | 邮件客户端需要真实主机 |
| `SRV` 记录 | 无切换存在 | 它们必须完全正确 |
| 指向其他提供商的子域 | **绝不** | 代理将其隐藏在错误的地址后面 |

下面的规则：代理为浏览器提供 HTTP 和 HTTPS 的主机名，以及仅此而已。

## 保持您的电子邮件正常工作

邮件是名称服务器迁移中最常见的牺牲品，通常在一两天内不被注意，因为传入邮件只是停止到达而不是产生可见错误。

如果您的邮箱在 KapsuleHost，之后四件事必须成立：

1. **`MX` 记录存在且未代理**，指向 `mail.kapsulehost.com`，优先级为 10。
2. **`SPF` 是单条记录。** 域名恰好允许一条。我们的看起来像 `v=spf1 include:_spf.kapsulehost.com ~all`。如果您还通过另一个服务发送，他们的主机应在该条记录内，而不是第二条记录。
3. **每条 `DKIM` 记录都已交叉。** 每个域都有其签名密钥发布为 `_domainkey` 下的 `TXT` 记录。有多个，使用丢失记录的密钥签名的邮件身份验证失败。
4. **`DMARC` 已交叉。** `_dmarc` 记录告诉接收服务器对上述检查失败的邮件执行什么操作。

任何邮箱上的 **Deliverability** 选项卡显示当前发布的内容和缺失的内容，以及要复制的正确值。在名称服务器传播后检查。[SPF、DKIM 和 DMARC 说明](https://support.kapsulehost.com/zh-cn/spf-dkim-dmarc) 涵盖每条记录的作用。

邮件直接在真实邮件主机名上发送和接收，因此永远不会通过代理。您的邮件客户端设置不会更改。

## 您失去的：真实客户端 IP

KapsuleHost 从转发头读取真实访客 IP，但仅当请求来自我们自己的边缘网络或机器本身时。任何其他来源都是不受信任的，故意地，因为转发头可以由任何人伪造。第三方代理不在该信任列表上，也没有受支持的方式来添加一个。

因此，依赖访客 IP 的所有内容都看到代理：

| 功能 | 发生什么 |
|---|---|
| 访问日志 | 记录代理的地址，而不是访客的 |
| 网站分析 | 将流量归因于代理 |
| 地理位置阻止 | 地理定位代理的数据中心，因此国家/地区规则误触 |
| 您的 IP 否认列表 | 无法阻止您从未看到的访客 |
| 平台滥用阻止 | 看到代理 |
| WordPress 安全插件 | 登录限制和评论过滤误键 |

有个更糟版本。该平台自动阻止生成错误突发或登录失败的地址。在代理后面，该活动全部显示为来自代理，因此一个行为不当的访客可能导致整个代理数据中心被暂时阻止，断掉通过它路由的所有其他人。我们无法从我们这边修复这个。

## 不要堆叠两个 CDN

使用 Kapsule CDN 和第三方代理不会使您的性能加倍。它给您两个缓存不一致、两套清除规则和一个非常难的调试问题。

还有一个具体的阻滞因素：启用 Kapsule CDN 需要我们的边缘为您的主机名发布证书，这需要主机名解析到我们的边缘。如果 DNS 改为指向第三方代理，该证书永远不会发布，CDN 会悄悄地什么都不做。

选一个。如果您想要他们的，请在委派名称服务器之前先关闭 Kapsule CDN。如果您想要我们的，关闭代理。启用 Kapsule CDN 通常会为您写入所需的边缘记录，但仅在您的 DNS 托管在我们这里时；否则使用 CDN 选项卡上的边缘主机名自己发布它们。

![KPanel 中网站的 Kapsule CDN 页面](https://support.kapsulehost.com/help/screenshots/using-cloudflare-with-kapsule.b7b43ee5.webp)

## 返回 Kapsule DNS

1. 在 KPanel 中打开 **DNS** 选项卡，检查记录是否仍与代理处的实时内容匹配。添加自您离开后创建的任何内容。
2. 关闭第三方服务中每条记录上的代理切换，使区域显示真实地址。确认网站仍然加载。
3. 将名称服务器在您的域名注册商处更改回 `ns1.kapsulecloud.com`、`ns2.kapsulecloud.com`、`ns3.kapsuledns.com` 和 `ns4.kapsuledns.com`。
4. 一旦委派移动，确认网站通过有效证书加载 HTTPS。
5. 检查邮箱上的 **Deliverability** 选项卡并确认邮件记录存在。
6. 如果需要，重新启用 Kapsule CDN，并确认证书发布。

> **Note:** 如果在代理处启用了 DNSSEC，请关闭它并等待父区域停止发布委派记录，然后再更改名称服务器。在发布陈旧密钥时移动名称服务器会使域在各处无法解析。请参阅 [DNSSEC](https://support.kapsulehost.com/zh-cn/domains-dnssec)。

## 出现问题时

- **`ERR_TOO_MANY_REDIRECTS`**：SSL 模式为灵活。将其更改为完整（严格）。
- **证书已过期或无效**：续期被阻止。添加 `/.well-known/` 排除，然后从面板重新发布。请参阅 [SSL 证书](https://support.kapsulehost.com/zh-cn/ssl-certificates)。
- **邮件停止到达**：`MX` 记录缺失、被代理或指向错误的主机。请参阅 [电子邮件未接收](https://support.kapsulehost.com/zh-cn/email-not-receiving)。
- **邮件发送但进入垃圾邮件**：`SPF`、`DKIM` 或 `DMARC` 记录未交叉。修复 **Deliverability** 选项卡标记的内容。请参阅 [为什么我的电子邮件进入垃圾邮件？](https://support.kapsulehost.com/zh-cn/email-spam-sending)
- **更改未出现**：两个缓存。清除两者，然后在私密窗口中检查。
- **某些访客无法到达网站，其他可以**：可能是一个代理数据中心上的自动阻止。请参阅 [打开支持工单](https://support.kapsulehost.com/zh-cn/opening-a-support-ticket)。
- **名称服务器更改后域停止解析**：通常是陈旧的 DNSSEC 委派记录。要求您的域名注册商删除它。
- **混合内容警告**：与代理无关，但通常在同时注意到。请参阅 [修复混合内容](https://support.kapsulehost.com/zh-cn/ssl-mixed-content)。

## 相关指南

- [在您的网站上启用 Kapsule CDN](https://support.kapsulehost.com/zh-cn/cdn-enabling)
- [清除 Kapsule CDN 缓存](https://support.kapsulehost.com/zh-cn/cdn-cache-purge)
- [更改域名服务器将您的域指向 Kapsule](https://support.kapsulehost.com/zh-cn/nameservers)
- [DNS基础知识：A记录、MX、CNAME和TXT详解](https://support.kapsulehost.com/zh-cn/dns-basics)
- [安全性：从何处开始](https://support.kapsulehost.com/zh-cn/security-overview)
- [虚拟主机词汇表：每个术语解析](https://support.kapsulehost.com/zh-cn/glossary)
