You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法从同VPC内的EC2实例访问另一EC2上部署的REST服务

解决同VPC内EC2实例无法访问REST API的问题

咱们一步步来排查你遇到的问题:同VPC里的win2实例没法访问win1上的http://<IP>:9090/ui,虽然你已经给win1的安全组开了80和443端口,但你的REST API实际用的是9090端口,这很可能是核心原因。下面是具体的排查和解决步骤:

1. 给win1的安全组添加入站9090端口规则

你当前的安全组只开放了80(HTTP)和443(HTTPS)端口,但你的应用监听的是9090,所以必须把这个端口也加入允许列表:

  • 登录AWS EC2控制台,找到win1实例,查看它关联的安全组
  • 进入安全组的「编辑入站规则」页面
  • 添加一条新规则:协议选TCP,端口范围填9090,来源可以设置为win2的私有IP(更安全)或者你的VPC的CIDR段(比如10.0.0.0/16,适合同VPC内所有实例访问),如果需要公网也能访问可以填0.0.0.0/0,但同VPC内优先用私有IP范围

2. 检查win1实例的Windows防火墙设置

Windows实例自带的Windows Defender防火墙可能会拦截9090端口的入站请求:

  • 在win1上打开「Windows Defender防火墙」→「高级设置」
  • 右键点击「入站规则」,选择「新建规则」
  • 规则类型选「端口」,下一步选「TCP」,指定本地端口9090
  • 允许连接,然后限定来源为同VPC的IP范围(或者直接允许所有,测试阶段可以先这么做),最后给规则命名保存

3. 验证REST应用是否正确监听9090端口

确保你的应用真的在监听9090端口,而且不是只绑定了本地回环地址:

  • 在win1上打开命令提示符,运行:
    netstat -ano | findstr :9090
    
  • 如果有输出,说明有进程在监听这个端口,记下PID可以去任务管理器对应到你的应用;如果没有输出,说明应用没启动或者配置错误,需要检查应用的配置文件,确认它绑定的是0.0.0.0或者win1的私有IP(不能只绑定127.0.0.1,否则只有本地能访问)

4. 在win2上测试端口连通性

先从网络层面验证是否能连上9090端口,再看API的问题:

  • 用PowerShell的话,运行:
    Test-NetConnection <win1的私有IP> -Port 9090
    
  • 或者用telnet(需要先启用Windows的telnet功能):
    telnet <win1的私有IP> 9090
    
  • 如果测试显示连通成功,那可能是你的API调用工具(比如浏览器、Postman)有问题,比如代理设置;如果连通失败,回到前面的安全组和防火墙设置排查

5. 检查VPC的网络ACL(可选)

如果前面的步骤都没问题,再检查VPC的网络ACL:

  • 默认的网络ACL是允许所有入站和出站流量的,但如果自定义了ACL,要确保入站规则允许TCP 9090端口的流量,出站规则允许返回的临时端口流量(通常是1024-65535)

内容的提问来源于stack exchange,提问作者Swaminathan S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:13:31