cloudflare cf-connecting-ip 会影响 http 标头吗?

问题描述

在使用 cloudflare 服务之前,我有几个问题。

  1. Web 服务器使用 cf-connecting-ipx-forwarded-for 等与 Web 不使用这些类型的东西之间的 http 请求标头有什么区别吗?

  2. 客户端可以/如何知道网络服务器使用 cf-connecting-ipx-forwarded-for 等?

解决方法

这些请求标头特定于网络代理,并在 Cloudflare 收到请求后附加到您的源。用户无法看到它,除非您的网络服务器出于某种原因将其发回。

x-forwarded-forhttps://en.wikipedia.org/wiki/X-Forwarded-For 代理服务器使用它来告诉源在用户和源之间中继请求所涉及的任何 HTTP 服务器。您可能会在此标头中看到 1 组或多组 IP 地址。

cf-connecting-ip: 将连接到 Cloudflare 的用户的 IP 中继到源站服务器

来自:https://support.cloudflare.com/hc/en-us/articles/200170986-How-does-Cloudflare-handle-HTTP-Request-headers-

CF-Connecting-IP 提供客户端(访问者)IP 地址(连接 到 Cloudflare)到源 Web 服务器。 cf-connecting-ip 包含一个 请求时的特殊 Cloudflare IP 2a06:98c0:3600:0:0:0:0:103 源自 Cloudflare Workers 子请求而不是 访问者的真实IP。

示例:

CF-连接-IP:203.0.113.1

X-Forwarded-For 维护代理服务器和原始访问者 IP 地址。如果文件中没有现有的 X-Forwarded-For 标头 请求发送到 Cloudflare,X-Forwarded-For 具有相同的值 CF-Connecting-IP 标头:

示例:

X-Forwarded-For: 203.0.113.1 如果 X-Forwarded-For 标头已经存在 出现在对 Cloudflare 的请求中,Cloudflare 会附加 IP HTTP 代理到标头的地址:

示例:

X-Forwarded-For: 203.0.113.1,198.51.100.101,198.51.100.102 在 上面的例子,203.0.113.1是原始访问者IP地址, 198.51.100.101 和 198.51.100.102 是通过 X-Forwarded-For 标头提供给 Cloudflare 的代理服务器 IP 地址。

因此,请查看您的应用程序并查看它是否取决于用户的 IP,如果是这样,您将需要修改您的网络服务器配置以中继正确的 IP。

要在源站 Web 服务器上恢复原始访问者 IP 地址, Cloudflare 建议您查看日志或应用程序 CF-Connecting-IP 或 True-Client-IP 而不是 X-Forwarded-For 因为 CF-Connecting-IP 和 True-Client-IP 格式一致 只包含一个IP。