VPC 网络配置让 Agent Sandbox 极速版中的 Sandbox 能够访问专有网络中的资源,并支持按业务需要选择公网访问方式。它是在 E2B 之外提供的扩展能力。
前提条件
开始配置前,完成以下准备:
准备与 Sandbox 位于同一地域且网络可达的 VPC、vSwitch 和安全组,vSwitch 应位于函数计算支持的可用区。
确保安全组出方向规则、目标资源白名单及业务访问权限满足访问要求。
网络配置(高级)
本节以二代模板为例,介绍配置 vpc_config 后的网络访问方式,重点说明 vpc_config 与 internet_access 的配合关系。未配置 VPC 时,沙箱默认可通过平台出口访问公网,出口 IP 不固定。
场景选择
场景 | vpc_config | internet_access | VPC 公网出口要求 | 公网访问结果 |
访问 VPC,同时通过平台出口访问公网 | 配置 | 开启(默认) | 无需为此配置固定公网出口 | 可访问公网,出口 IP 不固定 |
访问 VPC,不访问公网 | 配置 | 关闭 | VPC 不提供公网出口 | 无法访问公网 |
访问 VPC,同时通过固定 IP 访问公网 | 配置 | 关闭 | VPC 配置公网 NAT 网关、EIP 及相应路由与 SNAT 规则 | 可通过配置的固定出口 IP 访问公网 |
注意:VPC 网段需使用 RFC 1918 私有地址段(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16);vSwitch 需位于函数计算支持的可用区。
场景一:访问 VPC 和公网,出口 IP 不固定
配置 vpc_config,并保持 internet_access 开启(缺省即开启):
runtime_config=models.CreateTemplateRuntimeConfig(
cpu=2,
memory_size=2048,
disk_size=15360,
internet_access=True,
vpc_config=models.CreateTemplateVPCConfig(
vpc_id="<vpc-id>",
v_switch_ids=["<vsw-id>"],
security_group_id="<sg-id>",
),
log_config=models.CreateTemplateLogConfig(
project="<sls-project>",
logstore="<sls-logstore>",
),
sandbox_config=models.CreateTemplateSandboxConfig(
image=f"fc-e2b-registry.{REGION}.cr.aliyuncs.com/runtime-v2/base:v0.0.53",
generation=2,
),
)验证方式:创建沙箱后分别访问 VPC 内资源(如内网域名或私网 IP)和公网地址(如 curl https://www.aliyun.com),两者均可访问。该方式不提供固定公网出口 IP。
场景二:仅访问 VPC,不访问公网
配置 vpc_config,并关闭 internet_access;同时确认 VPC 本身未配置公网出口:
runtime_config=models.CreateTemplateRuntimeConfig(
cpu=2,
memory_size=2048,
disk_size=15360,
internet_access=False,
vpc_config=models.CreateTemplateVPCConfig(
vpc_id="<vpc-id>",
v_switch_ids=["<vsw-id>"],
security_group_id="<sg-id>",
),
log_config=models.CreateTemplateLogConfig(
project="<sls-project>",
logstore="<sls-logstore>",
),
sandbox_config=models.CreateTemplateSandboxConfig(
image=f"fc-e2b-registry.{REGION}.cr.aliyuncs.com/runtime-v2/base:v0.0.53",
generation=2,
),
)验证方式:沙箱内访问 VPC 内资源正常;访问公网地址超时或被拒绝。
场景三:访问 VPC 和公网,使用固定出口 IP
配置 vpc_config,并关闭 internet_access。在 VPC 侧配置公网 NAT 网关和 EIP,以及相应的路由与 SNAT 规则,使公网流量通过指定出口访问。
VPC 侧准备:为 VPC 配置公网 NAT 网关并绑定 EIP,为相关 vSwitch 配置指向 NAT 网关的路由与 SNAT 规则,确认沙箱所在 vSwitch 的流量能够通过该出口访问公网。
模板侧配置:参数与场景二相同(
internet_access=False+vpc_config)。
验证方式:在沙箱内查询出口 IP(如 curl ifconfig.me),返回的应为配置的 EIP。
场景二和场景三的模板构建参数相同,区别在于 VPC 是否具备公网出口。因此,关闭 internet_access 后,仍需结合 VPC 的网络配置判断沙箱是否能够访问公网。常见问题
为什么关闭 internet_access 后仍可能访问公网?
internet_access 只控制平台侧公网出口。如果模板接入的 VPC 已配置公网出口(NAT 网关 + EIP + SNAT),沙箱仍可通过该出口访问公网。需要彻底隔离公网时,同时检查模板参数和 VPC 网络配置。
如何获得固定公网出口 IP?
按场景三配置:模板侧关闭 internet_access 并配置 vpc_config;VPC 侧配置公网 NAT 网关和 EIP,并配置相应路由与 SNAT 规则。验证沙箱内出口 IP 是否为配置的 EIP。