白名单里配了 10 个内网 IP,其中一台跳板机被开发拿去跑压测脚本,一天请求 320 万次,全部放行。导出接口被拖慢,外部用户 P99 从 300 毫秒涨到 4 秒。碰到这种情况,我一般先确认改动有没有真的生效。

原因不复杂,白名单直接跳过限流,没有单独的额度,也没有鉴权。内网 IP 被当成可信来源,任何能登录跳板机的人都能借它绕过限制。

「白名单绕过限流」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。报错里带路径的,先去看那个路径在不在、权限对不对。

SELECT ip, app_code, qps_limit FROM rate_whitelist;
-- app_code 为空的记录应当清理
DELETE FROM rate_whitelist WHERE app_code IS NULL;

同一份配置存在多处的,先确认改的是被加载的那一份。新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。

具体做法是,白名单也要有独立配额 只是阈值更高;白名单请求带上来源应用标识 按应用分别计数;定期清理白名单 没有对应负责人就移除。

最后用这个标准收尾,跳板机再跑脚本时超过 200 QPS 开始返回 429,外部接口 P99 回落到 350 毫秒。

作者 9823189