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

AWS公有子网无法调用同VPC内私有子网API问题求助

排查步骤及解决方案

1. 验证后端服务监听状态

登录后端EC2实例,执行命令确认服务是否在所有网卡(而非仅localhost)上监听3300端口:

ss -tulpn | grep 3300

输出需包含0.0.0.0:3300,若显示127.0.0.1:3300,说明服务仅绑定本地回环,需修改后端启动配置(比如Node.js中设置app.listen(3300, '0.0.0.0'))。

同时确认服务运行状态:

# 若用systemd管理服务
systemctl status your-backend-service
# 或直接查看进程
ps aux | grep node

查看服务日志排查启动或运行错误:

tail -f /path/to/backend/logs.log

2. 检查EC2实例本地防火墙

部分Linux系统默认启用ufw或iptables,即使安全组/NACL放行,本地防火墙仍可能阻断流量:

  • 检查ufw状态:
    ufw status
    
    若启用,需允许3300端口及ICMP:
    ufw allow 3300/tcp
    ufw allow icmp
    
  • 检查iptables规则:
    iptables -L INPUT -v
    
    若存在DROP/REJECT规则阻断VPC内部CIDR(如10.0.0.0/16)的流量,需调整规则允许该范围的TCP 3300和ICMP流量。

3. 确认VPC路由表配置

  • 公有子网路由表:必须保留指向VPC内部CIDR的local路由(比如目标10.0.0.0/16,目标类型local),该路由默认存在,需确认未被误删。
  • 私有子网路由表:同样需保留local路由(保证同VPC子网互通),同时保留指向NAT网关的0.0.0.0/0路由(维持私有子网访问公网)。

4. 测试底层网络连通性

如果ping仍失败,在前端EC2实例上执行traceroute追踪数据包路径:

traceroute <后端私有IP>

查看数据包在哪个节点被阻断,定位是路由、ACL还是实例层面的问题。

5. 确认子网CIDR归属

确保公有、私有子网的CIDR均属于当前VPC的CIDR范围(比如VPC为10.0.0.0/16,子网为10.0.1.0/24和10.0.2.0/24),若子网CIDR不在VPC范围内,同VPC子网无法互通。


内容的提问来源于stack exchange,提问作者Ravi Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 20:26:02