如何通过公网访问开发机内的服务
概述
本文档介绍在开发机实例中配置自定义服务并开放公网访问的方法。当您在开发机实例中部署了服务(如模型 API、WebUI),并希望直接在浏览器访问、免登录分享给协作者测试,或需要从外网连接调用时,可以通过自定义服务功能配置公网访问能力,使服务暴露在互联网上。
注意: 此功能主要用于开发测试阶段。
前提条件
- 已登录百度智能云控制台,并具备创建或更新开发机、创建应用型 BLB、创建或绑定弹性公网 IP(EIP)以及配置安全组的权限。
- 账号无欠费状态,且 BLB、EIP、端口和 IP 组等配额满足创建与绑定要求。
- 已创建或准备创建开发机实例,并已选择资源池。开发机所在 VPC 需要在选择资源池后确认。
- 已规划服务在开发机容器内监听的端口、BLB 监听端口和传输协议,并确认安全组允许对应端口访问。## 实现原理
开发机通过 BLB 作为流量出入口。要将服务暴露到公网,需要提前创建一个绑定了弹性公网 IP(EIP)的 BLB 负载均衡实例。
为了让开发机实例内的服务(如运行在指定端口的 API)能从公网访问,需要以下资源协同工作:
- 弹性公网 IP(EIP):提供固定的公网 IP 地址,是公网访问的入口。
- BLB 负载均衡:负责将公网请求(
EIP:端口)映射到 VPC 内的开发机实例(私有 IP:端口)。 - 安全组:相当于开发机实例的防火墙。您必须显式添加规则,允许公网流量访问服务监听的特定端口。这是访问成功的关键一步。
核心流程:公网用户(浏览器/工具)-> EIP:端口 -> BLB 负载均衡 -> 安全组规则检查 -> 开发机实例私有 IP:端口 -> 您的服务
产品限制说明
- 开发机服务配置:每个开发机实例最多可配置 10 个服务,WebIDE 默认占用 1 个。
- BLB 配额限制:每个新建的 BLB 实例默认最多提供 50 个端口和 IP 组配额。如果端口和 IP 组被占满,BLB 将无法被绑定;每个 BLB 只能被一个集群绑定。
- 计费说明:BLB 负载均衡和 EIP 从创建起即开始计费。即使开发机实例已停止,只要 BLB 实例和 EIP 实例未被删除,它们仍会持续产生费用。
如何配置公网访问
步骤一:创建带弹性公网 IP 的应用型 BLB
开发机要启用公网服务,需要绑定一个带弹性公网 IP(EIP)的应用型 BLB 负载均衡实例。如果已有符合条件的 BLB 实例,可跳过此步骤。
进入 负载均衡 BLB->应用型实例,查看当前地域下的应用型 BLB 实例。若需要新建,点击 【创建负载均衡】 进入创建流程。

如果创建时页面提示账号存在欠款,需先处理欠款后再继续购买和创建 BLB。

开发机只能选择同 VPC 的应用型 BLB。只要 VPC 相同,子网和可用区可按实际资源选择。如果从开发机创建或更新页面点击 【创建 BLB】 跳转到 BLB 创建页面,控制台会自动带入当前地域和应用型实例类型,但仍需确认 VPC 与开发机所在 VPC 一致。
创建 BLB 时建议按以下规则配置:
| 参数 | 必填 | 说明 |
|---|---|---|
| 类型 | 是 | 选择应用型 BLB。 |
| 地域 | 是 | 保持与开发机所在地域一致。从开发机页面跳转创建时,建议不要变更默认地域。 |
| VPC | 是 | 选择开发机所在 VPC。开发机所在 VPC 需要在选择资源池后确认。 |
| 弹性公网 IP | 是 | 创建或绑定 EIP,作为公网访问入口。 |
| 计费模式 | 是 | BLB 到期可能影响开发机服务访问。计费模式选择包年包月时,建议开启自动续费。 |
创建好 BLB 后,继续创建或绑定弹性公网 IP(EIP),确保该 BLB 具备公网访问入口。
步骤二:创建或更新开发机访问配置
进入 百度百舸·AI 计算平台->大规模训练与推理->开发机,创建开发机或进入已有开发机的变更配置页面,在 访问配置 区域开启 启用自定义端口。
- 绑定 BLB 实例。
开启 启用自定义端口 后,绑定 BLB 为必填项。点击 请选择 BLB 下拉框,选择符合条件的带 EIP 的应用型 BLB 负载均衡实例。如果没有可选实例,可点击 【创建 BLB】 跳转创建。


- 配置访问端口。
点击 【添加自定义端口】,在访问端口表格中填写服务名称、开发机容器监听端口、BLB 监听端口,并选择传输协议。

| 参数 | 必填 | 说明 |
|---|---|---|
| 服务名称 | 是 | 自定义服务标识,用于区分不同访问服务。 |
| 开发机容器监听端口 | 是 | 服务在开发机实例内容器中实际监听的端口,需要与应用服务启动端口一致。 |
| BLB 监听端口 | 是 | 面向公网访问的监听端口。BLB 监听端口只能同时被绑定一次。 |
| 传输协议 | 是 | 根据服务访问协议选择,需与服务实际协议一致。 |
如果已绑定 BLB,可点击 【自动分配】 自动获取空闲的 BLB 监听端口。

- 完成开发机创建或更新。
确认资源队列、资源规格、BLB 绑定和访问端口等必填项均已配置后,点击 【确定】 提交创建或更新。若页面提示前置条件未满足,请按提示补齐后重新提交。

测试连通性
进入 百度百舸·AI 计算平台->大规模训练与推理->开发机,打开目标开发机实例的 Terminal。
- 在开发机 Terminal 中执行如下命令,启动 Python 内置的 HTTP 服务。
1echo 'Hello, World!' > index.html
2python -m http.server 9000 --bind 0.0.0.0
- 在开发机列表点击开发机实例名称,进入实例详情页,在 访问配置 中查看公网访问地址。公网访问地址格式为
http://<EIP>:<BLB监听端口>。 - 在浏览器中访问公网访问地址。当页面返回
Hello, World!时,表示服务访问配置成功。
常见问题
Q:配置了公网访问,但浏览器访问或外网连接失败(无法访问此网站 / Connection refused / Timeout)?
-
检查安全组规则。
- 确认安全组已添加入方向规则。
- 确认端口范围包含您配置的服务监听端口。
- 确认授权对象包含您的公网 IP 或
0.0.0.0/0。 - 确认协议类型(TCP/UDP)与服务协议一致。
-
确认服务在运行且监听正确端口。
- 在开发机实例的 Terminal 内执行
netstat -tunlp | grep <端口号>,查看端口是否被监听。 - 确保应用服务进程已启动,并在监听配置的端口。
- 在开发机实例的 Terminal 内执行
-
检查 BLB 和 EIP 状态。
- 确认 BLB 实例和 EIP 实例状态正常。
- 确认账号无欠费状态。
- 确认 BLB 监听端口未被其他服务占用。
-
在开发机实例内部测试服务。
- 执行
curl http://localhost:<端口号>或curl http://<实例私有IP>:<端口号>,确认服务本身可以正常响应。
- 执行
评价此篇文章
