章节导航
IP 白名单
IP 白名单
每个 API 密钥都可以设置独立的 IP 白名单,只有来自指定来源 IP 的请求才能使用此密钥。
什么情况下适合使用
适合部署在具有固定出口 IP 的生产环境服务器或企业内网服务。如果应用程序从家庭网络、移动网络或其他会变化的地址发出请求,请先确认出口 IP 稳定,否则可能会把自己锁在外面。
如何设置
前往 /keys ,打开该密钥的“…”菜单,选择“IP 白名单”,输入项目后保存。
也可以使用 PATCH /api/v1/keys/:id,搭配登录 session 或 Management API key 设置:
项目格式
在 UI 中每行输入一个值;使用 API 时,将相同值放入 `allowedCidrs` 数组。可接受裸 IPv4 地址、IPv4 CIDR,或 IPv6 字面值(仅精确匹配)。
203.0.113.7
198.51.100.0/24
2001:db8::1运作方式
留空(发送空的 [] 数组)代表允许所有来源 IP。这是默认值,现有密钥的行为保持不变。
来源 IP 取自 `cf-connecting-ip` 标头。
白名单非空但无法解析来源 IP 时,请求会被拒绝(fail-closed)。
⚠️ 重要:被拒绝的请求只会返回一般 401
如果来源 IP 不在白名单内,或无法解析来源 IP,响应会与“密钥无效”完全相同,都是一般 HTTP 401,不会提供专属错误信息。这是刻意的安全设计,避免窃取密钥的人知道白名单存在;代价是设置错误时症状与密钥失效一模一样,而且很难调试。保存前请先确认自己的服务器出口 IP 已经在白名单内。
⚠️ 重要:IPv6 只支持完全相同的字符串匹配
IPv6 不进行网段运算,地址必须与字符串完全一致。如果您的 IPv6 地址会变化,可能会被锁在外面;只有 IPv4 支持 /0–/32 CIDR 网段。
设置后何时生效
PATCH 或页面保存成功后,执行更新的实例会立即清除缓存。正常情况下,其他实例最迟约在 15 秒内同步;如果共享 Redis 暂时不可用,跨实例失效无法即时传播,最长可能受 1 小时缓存 TTL 影响。