全部產品
Search
文件中心

Function Compute:雲沙箱自訂網域名

更新時間:Sep 24, 2026

如果您希望在生產環境中通過固定網域名稱訪問雲沙箱,或者希望使用自有認證訪問沙箱中的 Web 服務,可以為雲沙箱綁定自訂網域名。

說明

自訂網域名是雲沙箱的 FC Extensions(雲上擴充)能力,是 E2B 之外的擴充能力,不屬於 E2B SDK 原生相容介面。

綁定自訂網域名後,您可以使用:

  • 控制鏈路網域名稱:訪問雲沙箱 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. 登入Function Compute雲沙箱控制台。

  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 未配置 apiUrl 或 domain

將 apiUrl 設定為控制鏈路網域名稱,將 domain 設定為資料鏈路基礎網域名稱。

資料鏈路地址無法訪問

泛網域名稱 CNAME 未生效,或沙箱內服務未監聽對應連接埠

檢查 *.example.com 解析結果,並確認沙箱內服務已啟動。

達到網域名稱數量上限

當前主帳號已綁定多個自訂網域名

刪除不再使用的網域名稱,或聯絡服務技術服務人員提高上限。

注意事項

  • sandbox.getHost(port) 返回的是 host,訪問時通常需要拼接 https://。

  • 自訂網域名適合生產或長期訪問情境;臨時調試也可以繼續使用雲沙箱預設訪問網域名稱。

  • 不要在未鑒權的連接埠服務中暴露敏感性資料、內部調試介面或長期有效憑證。