Remote Gateway 服务支持灵活的 CORS(跨域资源共享)配置,可以通过环境变量控制哪些域名可以访问远程桌面网关。
CORS_ALLOWED_ORIGINS 类型: 字符串(逗号分隔) 默认值: 空 描述: 额外允许的 CORS 来源,支持多个域名(逗号分隔)
示例:
CORS_ALLOWED_ORIGINS=https://yourdomain.com,https://www.yourdomain.com,https://admin.yourdomain.comCORS_ALLOW_ALL 类型: 布尔值(true 或 false) 默认值: false 描述: 是否允许所有来源访问(仅用于开发环境,生产环境强烈不推荐)
示例:
CORS_ALLOW_ALL=true # ⚠️ 仅用于开发/测试FRONTEND_URL 和 MAIN_BACKEND_URL 类型: 字符串(URL) 默认值:
FRONTEND_URL: http://localhost:5173MAIN_BACKEND_URL: http://localhost:3001描述: 默认允许的前端和后端 URL,始终会被添加到 CORS 白名单
编辑 docker-compose.yml 文件中的 remote-gateway 服务:
remote-gateway:
image: ghcr.io/silentely/nexus-terminal-remote-gateway:latest
environment:
GUACD_HOST: localhost
GUACD_PORT: 4822
FRONTEND_URL: http://frontend
MAIN_BACKEND_URL: http://backend:3001
# 添加额外的允许域名
CORS_ALLOWED_ORIGINS: https://yourdomain.com,https://www.yourdomain.com
# 开发模式(可选,不推荐生产使用)
# CORS_ALLOW_ALL: true创建或编辑 .env 文件:
FRONTEND_URL=http://localhost:5173
MAIN_BACKEND_URL=http://localhost:3001
CORS_ALLOWED_ORIGINS=http://localhost:8080
CORS_ALLOW_ALL=false情况 1: 错误域名不是你的应用
如果看到类似 keylol.cloudflareaccess.com 或 ssh.cosr.eu 的域名:
排查方法:
情况 2: 错误域名是你的应用
如果看到自己的域名被 CORS 拦截:
docker-compose.yml 中的 FRONTEND_URL 和 MAIN_BACKEND_URL 是否正确CORS_ALLOWED_ORIGINSdocker-compose restart remote-gateway确保在 CORS_ALLOWED_ORIGINS 中添加了你的域名:
environment:
CORS_ALLOWED_ORIGINS: https://terminal.example.com,https://www.example.com注意:
http:// 或 https://)可以,但仅限开发环境:
environment:
CORS_ALLOW_ALL: true # ⚠️ 生产环境禁用!生产环境必须明确配置允许的域名,不能使用 CORS_ALLOW_ALL=true。
CORS_ALLOW_ALL[Remote Gateway] CORS 允许的来源: http://frontend, http://backend:3001, https://yourdomain.com[Remote Gateway] ⚠️ CORS 允许所有来源(开发模式)