Privacy Proxy 在不暴露真实 IP 地址的情况下保留用户地理位置。这可确保基于位置的服务正常运行,同时保持隐私。
许多在线服务使用 IP 地址来确定用户位置:
- 搜索引擎返回本地相关结果。
- 内容提供商强制执行区域许可限制。
- 电子商务网站显示本地价格和运输选项。
- 新闻网站显示特定区域的内容。
传统的 VPN 和代理通常会破坏这些服务,因为流量是从远离用户实际位置的数据中心流出的。Privacy Proxy 通过选择与用户地理区域相匹配的出口 IP 地址来解决这个问题。
Privacy Proxy 使用 geohash 在不透露精确坐标的情况下保留位置。
Geohash ↗ 是纬度和经度的紧凑表示。Geohash 使用分级编码,其中较长的字符串表示更精确的位置:
| Geohash 长度 | 近似面积 |
|---|---|
| 1 个字符 | ~5,000 公里 |
| 2 个字符 | ~1,250 公里 |
| 3 个字符 | ~150 公里 |
| 4 个字符 | ~40 公里 |
| 5 个字符 | ~5 公里 |
Privacy Proxy 使用较低精度的 geohash(通常为四个到五个字符)将用户定位到城市或地区,而不会精确定位其确切位置。
当客户端连接到 Privacy Proxy 时:
- 客户端(或双跳部署中的第一跳代理)确定用户的近似位置。
- 客户端在
sec-ch-geohash标头中发送 geohash。 - Privacy Proxy 验证 geohash 并从注册到该地理区域的地址池中选择出口 IP 地址。
- 目标服务器看到出口 IP 并将用户定位到正确的区域。
sec-ch-geohash 标头包含 geohash 和国家/地区代码:
sec-ch-geohash: xn76c-JP格式为 <geohash>-<country_code>。国家/地区代码有助于解决 geohash 跨越国界的情况。
Cloudflare 在全球数百个城市维护着出口 IP 池。当您向地理位置数据库注册出口 IP 时,它们会映射到特定位置。
Privacy Proxy 可以实现:
- 默认情况下达到城市级精度,因此用户可以获得本地相关的搜索结果。
- 如果城市级不可用,则回退到国家级精度。
如果用户希望减少精确定位共享,可以选择较粗略的地理位置精度(仅限国家/地区和时区)。
验证地理位置精度的一种简单方法是通过代理搜索“我附近的披萨”。如果结果显示用户实际所在城市的披萨店,而不是遥远的数据中心,则说明地理位置保留功能运行正常。
Privacy Proxy 在 IPv6 上实现了更好的地理位置精度。如果您的源服务器支持 IPv6(AAAA DNS 记录),代理会优先选择 IPv6 出口地址,这些地址注册的地理精度比 IPv4 同等地址更高。
要为您的用户最大化地理位置精度,请确保您的服务可通过 IPv6 访问。
在双跳部署中,代理 A(由您运营)负责确定并转发 geohash:
- 代理 A 定位客户端的 IP 地址。
- 代理 A 将位置转换为具有适当精度的 geohash。
- 代理 A 在转发给代理 B 的 CONNECT 请求中包含 geohash。
- 代理 B (Cloudflare) 根据 geohash 选择出口 IP。
geohash 受到加密保护,以防止客户端欺骗其位置。
- Geo-egress: Improving WARP user experience on a larger network ↗ - Cloudflare 如何实现感知地理位置的出口。