AIMirrorXAIMirrorX
AIMirrorX 利用ガイドヘルプ&サポートビジネス協力ポリシーと利用規約利用ガイドAPIリファレンスAIアプリケーション

安全与限制配置

Root 配置模型请求速率限制、SSRF 防护和用户 API 密钥数量限制。

  • 安全与限制配置位于 /system-settings/security,仅 Root 可访问。
  • 该工作区包含「速率限制」「SSRF 保护」和「令牌限制」三个分区,用于控制模型请求频率、出站访问安全与密钥数量。

安全与限制配置简介

安全与限制域下有三个独立分区:

分区路径职责
速率限制/system-settings/security/rate-limit(默认进入)模型请求速率限制(全局 + 分组覆盖)。
SSRF 保护/system-settings/security/ssrf出站请求的域名/IP/端口白黑名单。
令牌限制/system-settings/security/token-limits每用户 API 密钥数量上限。

配置分区

速率限制

  • 安全与限制-速率限制

安全与限制-速率限制页面

  • 全局限制
字段校验/默认说明
启用速率限制默认关闭此处仅控制模型请求速率限制。Web/API 路由限流由环境变量配置。
限制周期≥0,默认 1速率限制的时间窗口(单位:分钟);同时作用于所有分组规则。
每周期最大请求数≥0,默认 0限制周期内允许的请求总数(含失败);0 = 无限制。
最大成功请求数≥1,默认 1000限制周期内允许的成功请求数(响应状态码低于 400 计为成功)。
  • 模型请求路由按登录用户(同一用户跨多个 API 密钥共享计数)计数并受速率限制;
  • Web/API 路由限流则由独立环境变量控制并按 IP 计数;
  • 限制周期内任一计数超限即返回 429 限流错误
  • 基于分组的速率限制

除全局限制外,可以为特定分组(用户分组或 API 密钥分组)覆盖设置每周期最大请求数(含失败)和最大成功请求数。
分组规则 JSON 结构为 {"分组名":[最大请求数(含失败),成功请求数]}:
规则可通过表格可视化编辑器维护,支持搜索、添加、编辑与删除;也可切换到 JSON 模式直接编辑原始 JSON。

操作流程:

  1. 点击「添加分组」。
  2. 在弹窗中输入分组名称(须与用户分组或 API 密钥分组的名称完全一致),填写最大请求数(含失败)与最大成功请求数。
  3. 点击「添加」后确认规则已加入列表,再点击页头「保存速率限制」写入(编辑、删除规则后同样需要保存);需要精确控制时切换到 JSON 模式核对。
  4. 用该分组下的 API 密钥发起请求验证。
  • 安全与限制-添加分组

安全与限制-添加分组页面

  • 安全与限制-编辑分组

安全与限制-编辑分组页面

分组规则仅在请求对应的分组键(API 密钥分组或用户分组)出现在规则中时生效;未命中任何分组规则时使用全局限制。空规则集表示全部使用全局。

  • 相关环境变量

除页面上的四项速率限制配置外,安全与限制还涉及以下启动时环境变量(主要是全局限流)。

环境变量默认值作用计数维度
GLOBAL_API_RATE_LIMIT_ENABLEtrue是否启用 API 全局限流。—
GLOBAL_API_RATE_LIMIT360每个 IP 在窗口内允许的 API 请求数。按 IP
GLOBAL_API_RATE_LIMIT_DURATION180API 限流窗口(秒)。—
GLOBAL_WEB_RATE_LIMIT_ENABLEtrue是否启用 Web 全局限流。—
GLOBAL_WEB_RATE_LIMIT120每个 IP 允许的 Web 请求数。按 IP
GLOBAL_WEB_RATE_LIMIT_DURATION180Web 限流窗口(秒)。—
CRITICAL_RATE_LIMIT_ENABLEtrue关键接口限流开关。—
CRITICAL_RATE_LIMIT20每个 IP 允许的关键请求数。按 IP
CRITICAL_RATE_LIMIT_DURATION1200关键限流窗口(秒,约 20 分钟)。—
SEARCH_RATE_LIMIT_ENABLEtrue搜索限流开关。—
SEARCH_RATE_LIMIT10每个用户允许的搜索请求数。按用户
SEARCH_RATE_LIMIT_DURATION60搜索限流窗口(秒)。—

(下载与上传另有 DownloadRateLimitNum / UploadRateLimitNum,默认 10。)

各变量的作用范围:

  • Global API:作用于所有 /api/* 路由,按客户端 IP 计数。
  • Global Web:作用于 web 页面/路由,按 IP 计数。
  • Critical:作用于注册、登录、密码重置、OAuth state/回调、Passkey、Access Token、2FA 验证、验证码等关键/匿名接口,按 IP计数。
  • Search:作用于搜索端点,按用户计数。

这些变量可以通过部署环境或启动配置设置,修改后需重启服务才生效;多实例部署需保持一致。

SSRF 保护

  • 安全与限制-SSRF 保护

安全与限制-SSRF 保护页面

SSRF 防护用于限制服务端出站 HTTP 请求允许访问的域名与 IP,避免请求被用于访问内网或回环地址。共 8 个字段:

字段说明
启用 SSRF 保护开启后所有受保护出站请求会被检查,防止服务器端请求伪造攻击。
允许私有 IP开启后允许访问私有/保留 IP;允许请求私有 IP 范围 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)。
域名过滤模式黑名单(仅阻断列出的域名), 白名单(仅允许列出的域名)。IP 字面量 URL(如 http://203.0.113.10/)不匹配域名列表。
域名 黑名单 / 域名 白名单标签随「域名过滤模式」切换。每行一个域名。白名单且列表为空时全部阻断;黑名单且列表为空时全部放行。
IP 过滤模式黑名单,白名单。
IP 黑名单 / IP 白名单标签随「IP 过滤模式」切换。每行一个 IP 或 CIDR 范围(如 10.0.0.0/8、192.168.1.1)。
允许的端口允许的端口的逗号分隔列表(如80、443、8080、8443);留空 = 所有端口。
对已解析的域应用 IP 筛选器开启后,当目标为域名时,会把域名解析出的每一个 IP 再按 IP 过滤规则校验后才连接;用于防止 DNS 重绑定绕过。默认开启;关闭后,通过域名访问时只校验端口和域名规则,不检查解析出的 IP(包括私有 IP)。

执行边界:

  • 生效于受保护出站 HTTP 客户端、下载请求、Midjourney 图片拉取、视频代理、Webhook 与 Bark/Gotify 通知等出站请求;转发到上游渠道的请求本身不做 SSRF 检查。
  • 仅允许 http:// / https:// 地址;域名解析失败会报错。
  • 对域名同时校验「请求时」与「拨号时」(dial-time),避免解析后回环 IP 绕过。
  • 关闭「允许私有 IP」时,指向内网或回环 IP 地址的下载、Webhook、通知等出站目标会被拦截;通过域名访问的目标仅在「对已解析的域应用 IP 筛选器」开启时才会检查解析出的 IP,关闭后解析到内网地址的域名不会被拦截。转发到上游渠道的请求不受影响。
  • 域名白名单启用后请同时注意「对已解析的域应用 IP 筛选器」:它会让解析出的每个 IP 再受 IP 规则约束;
  • 若 IP 列表为空且为黑名单模式则全部放行;若为白名单且为空则全部阻断。

令牌限制

  • 安全与限制-令牌限制

安全与限制-令牌限制页面

「令牌限制」只有「每个用户的最大令牌数」一个字段(默认 1000),控制每个用户可创建的最大令牌数量(设置过大可能会影响性能);在创建 API 密钥(POST /api/token)时校验:当前用户密钥数达到上限后,新密钥会被拒绝。

保存与生效

  • 各分区按字段逐项保存:先计算变更字段,再对每个变更字段单独提交 PUT /api/option/。
  • SSRF 的列表字段以 JSON 字符串保存:域名列表、IP 列表按每行一个,允许端口按逗号分隔,转换为数组后提交。
  • 配置写入后当前进程更新内存值;多实例部署中的其他节点按 SYNC_FREQUENCY 周期重新载入(默认约 60 秒),同步完成前不同节点可能短暂不一致。

注意事项

  • 速率限制:只作用于模型请求路由、按登录用户计数;全局 Global/API/Web/Critical 限流由环境变量控制、按 IP 计数,二者相互独立。
  • 分组规则共享窗口:分组仅覆盖次数,窗口与全局一致。
  • SSRF 私网范围:关闭「允许私有 IP」会拦截比界面列出网段更广的 IANA 私有/保留段。
  • SSRF 黑白名单语义:白名单为空=全部阻断,黑名单为空=全部放行;域名通配只在域名层生效,IP 过滤在解析后对每个 IP 生效。
  • SSRF 默认端口:后端默认 80/443/8080/8443;为空表示全部端口允许。
  • 令牌限制:是每用户密钥数量上限,达到上限后创建被拒;密钥数超过上限(如调低上限后)时,带 % 通配符的模糊搜索会被拒绝,只能精确搜索。
  • 机制为「阻止并返回错误」,不是静默重试:限流、SSRF 命中时对应请求都会失败,客户端按错误处理即可。

常见问题

  • 限流未生效:确认「启用速率限制」已开、窗口与次数不超过(默认总数 0=不限、成功数 1000),并确认请求走的是模型请求路由(不是 /api、站点页面)。也要区分是否命中 GLOBAL_*_RATE_LIMIT 导致的 IP 级 429。
  • 全局限流 429 从何而来:检查 GLOBAL_API_RATE_LIMIT_*、GLOBAL_WEB_RATE_LIMIT_*、CRITICAL_RATE_LIMIT_*、SEARCH_RATE_LIMIT_* 等环境变量及作用范围;这些是启动时变量,修改后需重启。环境变量限流返回的 429 没有响应体(可能带 Retry-After 头),本页模型限流的 429 带错误消息(如「您已达到请求数限制:…」),可据此区分;两类限流相互独立。
  • 分组规则不生效:确认分组名与请求的分组键(API 密钥分组或用户分组)完全一致;分组只覆盖次数,周期仍取全局;规则是 {"组名":[总数,成功数]} 的 2 元素数组,成功数须 ≥1。
  • 窗口无法按分组区分:分组与全局共享同一窗口时长;如需不同窗口,调整全局窗口。
  • SSRF 误拦截:检查是否关闭了「允许私有 IP」,或域名/IP 白名单是否覆盖目标;确认端口在允许列表中;域名场景检查「对已解析的域应用 IP 筛选器」是否把解析 IP 拦掉。
  • SSRF 漏放:检查黑名单是否未包含目标地址、允许端口是否为空(空=全部允许)、以及黑白名单模式是否符合预期。
  • 出站目标为域名但偶发失败:多为 DNS 重绑定或被解析出的某个 IP 命中 IP 规则;开启「对已解析的域应用 IP 筛选器」并按网络实际情况补充 IP 白名单/黑名单。
  • 创建密钥被拒:当前用户密钥数已达 token_setting.max_user_tokens 上限;删除部分密钥(禁用或过期的密钥仍计入数量),或调高上限。
  • 搜索密钥提示仅允许精确搜索:用户密钥数超过上限时,带 % 通配符的模糊搜索会被拒绝,并提示「令牌数量超过上限,仅允许精确搜索,请勿使用 % 通配符」;调高上限或删除部分密钥后恢复。

相关文档

  • 系统设置概览:系统设置的生效机制、多实例同步、敏感配置与变更验证要求。
  • 请求策略配置:请求检查(原「敏感词」)、重试、会话保持与渠道健康。
  • API 密钥:API 密钥的创建、分组与模型限制。
  • 使用日志:查看请求详情;被速率限制拒绝的模型请求不会写入使用日志。