projectipaccesslist 是唯一有效配置入口,atlas 自2021年7月弃用旧版whitelist;常见连不上原因是cidr格式错误、权限不足、出口ip误判、缓存延迟1–5分钟。

projectIpAccessList 是当前唯一有效的配置入口,Atlas 已于 2021 年 7 月彻底弃用旧版「Whitelist」机制。任何仍尝试在 UI 里找“Whitelist”按钮、或调用已下线 API 的操作,都会静默失败——不是报错,而是连接超时或被防火墙拦截。
为什么加了IP还是连不上?常见错误现象和排查点
最典型的表现是:命令执行成功,但应用立刻报 Connection timed out 或直接卡住,mongo 命令无响应。这不是网络不通,而是请求根本没进 Atlas 集群。
- CLI 添加时用了
--cidrBlock "203.0.113.42"(缺/32),会返回 HTTP 400:invalid CIDR notation - API Key 权限不足:至少需要
Project Read Only角色,Organization Member不够 - 本地出口 IP 判定错误:Wi-Fi 热点、企业代理、云主机跳转后看到的是网关 IP,不是你本机
ifconfig的结果;用curl ifconfig.me实时查 - 刚添加就测:
projectIpAccessList生效有缓存延迟,通常 1–2 分钟,极端情况达 5 分钟,别急着重试
CLI 添加单个 IP 或 CIDR 段的正确写法
必须显式写全 CIDR 格式,CLI 不会自动补 /32。同时确保已登录且 profile 正确:
atlas auth login --profile my-prod atlas projectIpAccessList add --cidrBlock "203.0.113.42/32" --comment "laptop-may2026" atlas projectIpAccessList add --cidrBlock "203.0.113.0/24" --comment "office-network"
-
--profile必须指向目标项目,可用atlas config list确认 - IPv6 要带完整前缀,例如
"2001:db8::1/128",只填"2001:db8::1"会失败 - 不支持域名、通配符(如
*.example.com)或端口(如203.0.113.42:27017)
用 Admin API 批量添加并设置临时条目
适合 CI/CD 自动化或需限时开放的场景(比如临时给外包人员开 24 小时权限)。注意:GROUP-ID 是项目 ID,不是名称,形如 60f1a2b3c4d5e6f7g8h9i0j1,在项目 Settings → General 页面顶部查看。
将 WCAG 2 AA 无障碍标准应用于设计系统、UI 组件和网页——通过可运行的验证器进行对比度计算,采用设计 token 模式使颜色天生可访问,设定排版和焦点状态规则,并提供语义检查清单。适用于构建或审查 UI。
curl -X POST "https://cloud.mongodb.com/api/atlas/v2/groups/60f1a2b3c4d5e6f7g8h9i0j1/accessList" \
-H "Authorization: Bearer $ATLAS_API_KEY" \
-H "Content-Type: application/vnd.atlas.2023-01-01+json" \
-d '[
{
"cidrBlock": "203.0.113.42/32",
"comment": "temp-access-for-audit",
"deleteAfterDate": "2026-05-13T00:00:00Z"
}
]'
- 一次最多提交 100 条,超量会触发 HTTP 429 速率限制
-
deleteAfterDate必须是 ISO 8601 UTC 时间,且距当前不超过 7 天 - UI 不显示该字段,但 CLI/API 创建的临时条目仍会准时过期
UI 和 CLI/API 的关键行为差异
UI 表面简单,但隐藏逻辑多,容易误判实际效果:
- 你在 UI 里输入
203.0.113.42,它会自动补成203.0.113.42/32;CLI 不会,必须手写 - UI 删除条目后,底层调用的是
DELETE /groups/{GROUP-ID}/accessList/{ACCESS-LIST-ENTRY-ID};CLI 的atlas projectIpAccessList delete需先用list查出id字段才能删 - UI 中无法看到
deleteAfterDate,但不影响其功能;临时条目到期后不会出现在 UI 列表里,也不会报警
真正容易被忽略的是缓存延迟和出口 IP 动态性——哪怕你确认 IP 正确、格式合规、权限足够,也请等满 2 分钟再验证连接,否则所有排查都白做。










