全部产品
Search
文档中心

函数计算:云沙箱自定义域名

更新时间:Sep 01, 2026

如果您希望在生产环境中通过固定域名访问云沙箱,或者希望使用自有证书访问沙箱中的 Web 服务,可以为云沙箱绑定自定义域名。

绑定自定义域名后,您可以使用:

  • 控制链路域名:访问云沙箱 API,例如 https://api.example.com

  • 数据链路域名:访问沙箱内服务,例如 https://{port}-{sandboxId}.example.com

example.com 为例:

用途

示例

说明

控制链路域名

api.example.com

用于创建、查询、删除云沙箱等 API 请求。

数据链路域名

*.example.com

用于访问沙箱内指定端口的服务。

SDK apiUrl

https://api.example.com

SDK 访问云沙箱 API 的地址。

SDK domain

example.com

SDK 拼接沙箱服务访问地址时使用的基础域名。

使用限制

  • 云沙箱绑定自定义域名时,必须选择云沙箱所在的地域。

  • 当前控制链路域名仅支持 api. 开头的单域名,例如 api.example.com

  • 数据链路域名为控制链路域名去掉 api. 前缀后的泛域名,例如 *.example.com

  • 必须使用 HTTPS 协议。

  • 必须上传可覆盖数据链路泛域名的证书,例如 *.example.com。仅覆盖 api.example.com 的单域名证书不满足要求。

  • 私钥必须为未加密的 RSA PEM 格式。如果您的私钥是 -----BEGIN PRIVATE KEY----- 格式,可先转换为 -----BEGIN RSA PRIVATE KEY----- 格式。

  • 不支持中文域名。

  • 同一个主账号默认最多可绑定 5 个云沙箱自定义域名。如需提高上限,请联系服务支持人员。

  • 自定义域名需要完成备案或接入备案,具体要求以控制台校验结果为准。

私钥格式转换示例:

openssl rsa -in pkcs8.key -out pkcs1.key

1. 添加自定义域名

  1. 登录函数计算云沙箱控制台

  2. 在左侧导航栏选择 云沙箱 > 域名管理

  3. 选择云沙箱所在地域。

  4. 单击 添加自定义域名

  5. 添加自定义域名 页面填写控制链路域名,例如 api.example.com

  6. 按页面提示获取控制链路 CNAME 和数据链路 CNAME,用于下一步配置域名解析。

重要:自定义域名必须选择与云沙箱相同的地域,否则域名解析和证书校验可能无法生效。

2. 配置域名解析

登录云解析 DNS 控制台,将自定义域名解析到云沙箱提供的 CNAME。

CNAME 类型

主机记录

记录类型

记录值示例

控制链路 CNAME

api

CNAME

api.cn-beijing.e2b.fc.aliyuncs.com

数据链路 CNAME

*

CNAME

{AccountID}.cn-beijing.e2b.fc.aliyuncs.com

示例:如果您的主账号 ID 为 119085698835****云沙箱所在地域为华北 2(北京),数据链路 CNAME 可配置为:

119085698835****.cn-beijing.e2b.fc.aliyuncs.com

配置完成后,建议等待 DNS 生效再提交或验证。您可以使用以下命令检查解析结果:

dig +short CNAME api.example.com
dig +short CNAME test.example.com

其中 test.example.com 用于验证 *.example.com 泛域名解析是否生效。

3. 配置 HTTPS 证书

云沙箱自定义域名强制使用 HTTPS。请在添加域名时上传证书和私钥。

配置项

说明

证书名称

用于标识本次上传的证书。

PEM 证书内容

填写完整证书链,需包含 -----BEGIN CERTIFICATE----------END CERTIFICATE-----

PEM 证书密钥

填写未加密的 RSA 私钥,需包含 -----BEGIN RSA PRIVATE KEY----------END RSA PRIVATE KEY-----

TLS 协议版本

建议选择 TLS 1.2 或更高版本。

证书要求:

  • 证书必须在有效期内。

  • 证书和私钥必须匹配。

  • 证书必须覆盖数据链路泛域名。例如控制链路域名为 api.example.com 时,证书应覆盖 *.example.com

4. 在 SDK 中使用自定义域名

域名添加成功后,将 SDK 中的 API 地址和数据链路基础域名替换为您绑定的自定义域名。

TypeScript 示例:

import { Sandbox } from "e2b";

const sandbox = await Sandbox.create("code-interpreter-v1", {
  apiKey: process.env.E2B_API_KEY,
  apiUrl: "https://api.example.com",
  domain: "example.com",
});

const host = sandbox.getHost(8000);
console.log(`https://${host}`);

Python 示例:

from e2b import Sandbox

sandbox = Sandbox.create(
    template="code-interpreter-v1",
    api_key=os.environ["E2B_API_KEY"],
    api_url="https://api.example.com",
    domain="example.com",
)

host = sandbox.get_host(8000)
print(f"https://{host}")

如果沙箱 ID 为 sandbox-id,访问端口为 8000,SDK 返回的访问地址形如:

https://8000-sandbox-id.example.com

5. 验证自定义域名

完成配置后,可按以下步骤验证:

  1. 使用 SDK 或 OpenAPI 创建一个云沙箱

  2. 在沙箱中启动一个 HTTP 服务,例如监听 8000 端口。

  3. 调用 sandbox.getHost(8000) 获取访问域名。

  4. 使用浏览器或 curl 访问 https://{port}-{sandboxId}.example.com

示例:

curl -v https://8000-sandbox-id.example.com

如果返回沙箱内服务响应,说明数据链路域名已生效。

常见问题

问题

可能原因

处理方式

添加域名时提示 CNAME 校验失败

DNS 未配置、记录值错误,或解析尚未生效

检查控制链路 CNAME 是否指向控制台提示的目标地址,等待 DNS 生效后重试。

HTTPS 访问时证书不匹配

证书未覆盖数据链路泛域名

上传覆盖 *.example.com 的泛域名证书。

提示私钥格式错误

私钥不是未加密 RSA PEM 格式

使用 openssl rsa -in pkcs8.key -out pkcs1.key 转换后重新上传。

SDK 仍返回默认访问域名

SDK 未配置 apiUrldomain

apiUrl 设置为控制链路域名,将 domain 设置为数据链路基础域名。

数据链路地址无法访问

泛域名 CNAME 未生效,或沙箱内服务未监听对应端口

检查 *.example.com 解析结果,并确认沙箱内服务已启动。

达到域名数量上限

当前主账号已绑定多个自定义域名

删除不再使用的域名,或联系服务支持人员提高上限。

注意事项

  • sandbox.getHost(port) 返回的是 host,访问时通常需要拼接 https://

  • 自定义域名适合生产或长期访问场景;临时调试也可以继续使用云沙箱默认访问域名。

  • 不要在未鉴权的端口服务中暴露敏感数据、内部调试接口或长期有效凭证。