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

Angular5部署Amazon EC2实例后无法通过公网IP访问求助

解决EC2实例公网无法访问4200端口应用的问题

先帮你揪出最可能的问题——你提到应用运行在4200端口,但你的入站规则里开放的是4100!这大概率是笔误导致的访问失败。接下来咱们一步步排查所有可能的原因:

1. 修正安全组端口不一致的问题

你当前的入站规则里开放了4100,但应用用的是4200,赶紧添加一条新的入站规则:

  • 类型选择「自定义TCP」
  • 端口范围填4200
  • 源选择0.0.0.0/0, ::/0(和你其他开放端口的配置一致)
    保存规则后再尝试访问。

2. 确认应用绑定的是公共可访问的地址

ng serve默认只会绑定localhost(127.0.0.1),这时候只有EC2实例内部能访问,外部公网是连不上的。你需要启动应用时指定绑定所有网卡:

ng serve --host 0.0.0.0 --port 4200

如果是Node.js后端应用,也要确保代码里监听的是0.0.0.0而不是127.0.0.1,比如:

app.listen(4200, '0.0.0.0', () => {
  console.log('应用运行在0.0.0.0:4200');
});

3. 检查EC2实例内部的防火墙规则

即使安全组开了端口,Linux实例自带的防火墙(比如iptables或firewalld)可能会拦截流量:

  • 用ss命令检查4200端口的监听状态:
    ss -tulpn | grep 4200
    
    如果输出里显示127.0.0.1:4200,说明还是绑定了本地地址,回到步骤2修正;如果显示0.0.0.0:4200,继续下一步。
  • 检查防火墙是否开放4200:
    对于firewalld:
    sudo firewall-cmd --list-ports
    
    如果没看到4200,添加并重启:
    sudo firewall-cmd --add-port=4200/tcp --permanent
    sudo firewall-cmd --reload
    
    对于iptables:
    sudo iptables -A INPUT -p tcp --dport 4200 -j ACCEPT
    sudo service iptables save
    

4. 验证公网IP的有效性

确认你使用的是EC2实例的弹性公网IP(或者当前分配的临时公网IP),并且已经成功关联到实例。你可以在EC2控制台的实例详情里查看公网IP,确保和你访问的地址一致。

按照上面的步骤逐一排查,应该就能解决访问问题了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:54:15