AITM 为所有受管项目的容器预留一个连续的 Docker 端口范围。本页说明该端口池的工作方式,以及 CORS 检查为何是另一个独立的问题。

Docker 端口与 CORS 访问

1. 一个共享端口池

AITM 为所有受管项目的容器预留一个连续的 Docker 端口范围(默认 20000–20050,共 50 个端口)。该范围定义在 AITM 的 src/constants.ts 中,可通过 release/docker/.env(AITM_PROJECT_PORTS_START / AITM_PROJECT_PORTS_END)覆盖,也可在 Settings → Projects & Memory(projectPortRange)中设置。

概念控制内容配置位置
Docker 端口发布范围Docker 将哪些容器端口发布到主机,以便浏览器访问release/docker/.env(AITM_PROJECT_PORTS_START/_END)或 Settings → Projects & Memory → projectPortRange
CORS 允许的来源AITM 通过其 OriginPolicy 放行哪些浏览器来源AITM 服务器配置,与端口范围无关

这是一个共享池,并非为每个项目分配专用的端口或 IP 地址。项目的 Web Port 只需落在已发布的范围内,即可从主机浏览器访问 — AITM 不会为每个项目分配单独的 IP 地址。

2. CORS 是第二个独立的检查

Docker 发布端口与 AITM 允许 CORS 来源是两个相互独立的条件。要使项目的容器能从浏览器访问,两者都必须满足:端口必须由 Docker 发布,并且浏览器来源必须被 AITM 的 OriginPolicy 允许。只满足其中之一是不够的。

实用建议

  • 如果新项目的开发/测试服务器端口落在已发布范围之外,容器内部一切看起来正常,但从主机浏览器无法访问。
  • 解决办法是将项目端口移到已发布范围内(或在 Settings 中扩大 projectPortRange)— 而不是申请新的 IP 地址。
  • 如果端口没有问题但浏览器仍报告 CORS 错误,则问题出在 OriginPolicy,而不是端口范围 — 这是另一个独立的检查。