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

Route53子域名无法连接EC2上Node.js应用 公网IP可正常访问求助

嘿,咱们来拆解下为啥你的Node Express应用能正常访问,但ping域名和EC2公网IP都超时丢包——这在AWS环境里是挺常见的情况,咱们一步步排查:

排查步骤

1. 检查EC2安全组的ICMP入站规则

这是最常见的原因!你的Node应用依赖TCP端口(比如80、3000),安全组肯定开了对应TCP规则所以能访问,但ping依赖的是ICMP协议,默认安全组是不允许ICMP入站请求的。

操作步骤:

  • 登录AWS控制台进入EC2服务,找到你的实例
  • 点击实例详情里的「安全组」,进入对应安全组配置页
  • 切换到「入站规则」标签,添加ICMP规则:
    • IPv4:类型选「所有ICMP - IPv4」或「Echo请求 - ICMP」,来源设为0.0.0.0/0(或你需要的特定IP范围)
    • IPv6:同理添加「所有ICMP - IPv6」或对应Echo请求规则

2. 验证VPC网络ACL规则

如果安全组没问题,就得看VPC的网络ACL了——它是无状态防火墙,入站和出站规则都要配置正确才能让ping正常工作:

  • 进入VPC控制台,找到实例所在子网对应的网络ACL
  • 检查入站规则:是否允许ICMP类型8(Echo Request)的流量
  • 检查出站规则:是否允许ICMP类型0(Echo Reply)的流量
  • 网络ACL默认拒绝所有,所以必须手动添加这两条规则

3. 检查实例内部的防火墙设置

有些EC2实例自带防火墙,可能拦截了ICMP请求:

  • Linux系统:
    • 运行sudo iptables -L查看iptables规则,确认是否拦截ICMP
    • 如果用ufw防火墙,运行sudo ufw status,若ping被拒绝,执行sudo ufw allow icmp开启权限
  • Windows系统:
    • 打开「Windows Defender防火墙」的「高级设置」
    • 在「入站规则」里找到「文件和打印机共享(Echo Request - ICMPv4-In)」,确保它处于启用状态

4. 确认Route53域名解析正确性

虽然应用能访问,但还是要确认A记录是否正确指向EC2公网IP:

  • 在本地终端运行nslookup 你的子域名或dig 你的子域名,查看返回的IP是否和EC2公网IP完全一致
  • 如果解析不对,可能是DNS缓存未生效,等几分钟(或手动刷新本地DNS缓存)再试

5. 排除本地网络或ISP限制

有些ISP会屏蔽ICMP流量,或者你的本地网络防火墙拦截了ping请求:

  • 切换到手机热点等其他网络后再尝试ping,看是否能成功
  • 如果其他网络能ping通,那就是你本地网络的问题,需要调整本地防火墙或联系ISP

内容的提问来源于stack exchange,提问作者Krishan DKM

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 20:22:40