如何通过公网访问开发机内的服务
当您在 开发机 实例中部署了服务(如模型 API、 WebUI)并希望直接在浏览器访问、免登录的分享给协作者测试,或需要从外网连接调用时,开发机 提供了自定义服务功能来配置公网访问的能力,使服务能暴露在互联网上。请注意:此功能主要用于开发测试阶段。
实现原理
开发机通过BLB作为流量出入口,所以想要将服务暴露到公网,需要提前创建一个绑定了弹性公网IP(EIP)的BLB负载均衡实例。
为了让 开发机 实例内的服务(如运行在9000端口的 API)能从公网访问,需要以下资源协同工作:
- 弹性公网 IP (EIP):提供一个固定的公网 IP 地址 (如:
121.40.**.**)。这是公网访问的入口。 - BLB 负载均衡:负责将公网请求 (
EIP:端口) 映射到VPC内的开发机实例 (私有IP:端口)。 - 安全组:相当于 开发机 实例的防火墙。您必须显式添加规则,允许公网流量访问您服务监听的特定端口(如
9000)。这是访问成功的关键一步。
核心流程:公网用户 (浏览器/工具) -> EIP:端口 -> BLB负载均衡 -> 安全组规则检查 -> 开发机 实例私有IP:端口 -> 您的服务
产品限制说明
- 开发机服务配置:每个开发机实例最多可配置10个服务,webIDE默认占用1个
- BLB配额限制:每个新建的BLB实例默认最多提供50个端口和IP组配额,如果端口和IP组被占满,BLB将无法被绑定;每个BLB只能被一个集群绑定
- 计费说明:BLB负载均衡和 EIP 从创建起即开始计费,即使 开发机 实例已停止,只要 BLB实例和 EIP实例未被删除,它们仍会持续产生费用。
如何配置公网访问
步骤一:创建BLB
开发机要启用公网服务,需要绑定一个带弹性公网 IP (EIP)的BLB负载均衡实例,同时建议您配置好安全组策略。如果已有带EIP的BLB实例,可跳过此步。
查看与创建BLB
开发机创建或者更新页中,启用自定义服务,查看与跳转到BLB创建页
创建 BLB 参数建议
1.类型选择应用型 BLB
2.请勿变更当前默认区域(需要保持开发机与BLB实例在一个可用区)
3.BLB 到期可能影响开发机的服务访问,计费模式若选择“包年包月”建议开启『自动续费』
创建好BLB后,可继续创建弹性公网 IP (EIP)并完成绑定
步骤二:创建或更新开发机访问配置
- 绑定BLB实例
在开发机创建或更新页->访问配置->启用自定义端口->选择符合条件的带弹性公网 IP (EIP)的BLB负载均衡实例

- 配置访问端口
开发机容器监听端口,为开发机实例内私有端口,需要与BLB监听端口映射,面向BLB监听端口的访问将转发到开发机容器监听端口。因BLB可能被其它服务复用,BLB监听端口只能同时被绑定一次,可点击"自动分配"按钮,将自动分配空闲的BLB监听端口。其它选项请根据实际需求配置。

- 完成开发机创建或更新
测试连通性
- 在开发机的Terminal中执行如下命令,启动Python内置的HTTP服务。
1# 创建一个包含测试内容的 HTML 文件
2echo 'Hello, World!' > index.html
3
4# 启动 Python 内置 HTTP 服务(监听 9000 端口)
5python -m http.server 9000 --bind 0.0.0.0
- 在开发机列表点击开发机实例名称,进入实例详情页,查看访问配置获取访问地址。

- 以公网访问为例,复制公网访问地址
121.40.**.**:7621并在浏览器中访问。当返回Hello, World!时表示服务访问配置成功。
常见问题
Q:配置了公网访问,但浏览器访问/外网连接失败 (无法访问此网站/Connection refused/Timeout)?
-
第一步:检查安全组规则!(最常见原因)
- 确认安全组已添加入方向规则。
- 规则端口范围是否包含您配置的端口(如
9000) - 规则授权对象是否包含您的公网 IP 或
0.0.0.0/0 - 规则协议类型(TCP/UDP) 是否正确
-
第二步:确认服务在运行且监听正确端口
- 在 开发机 实例的 Terminal 内,使用
netstat -tunlp | grep <端口号>(如netstat -tunlp | grep 9000) 查看端口是否被监听。 - 确保您的应用服务进程已启动并在监听配置的端口。
- 在 开发机 实例的 Terminal 内,使用
-
第三步:检查 BLB 和 EIP 状态
- 确认实例处于运行中,确认账号没有欠费
- 第四步:本地测试:在 开发机 实例内部,尝试用
curl http://localhost:<端口号>或curl http://<实例私有IP>:<端口号>看服务是否响应,排除服务本身的问题
