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,而不是端口范围 — 这是另一个独立的检查。