我正在为MEAN堆栈使用EC2实例。我已经安装了一个Angular JS应用程序。它在端口9000上运行正常。如果我输入
curl localhost:9000
我看到了输出。 当我通过互联网从浏览器中查看它时,它不起作用。我去了管理面板并打开了端口,我之前从端口3000的快递应用程序做了这个。我仍然无法从互联网上访问它。然后我检查了在端口3000上运行的快速应用程序,它运行正常。所以我关闭了那个app&将Angular应用程序的端口更改为3000,再次启动。这次我得到了#34; Connection拒绝错误" 之前的错误曾经是"连接超时"。所以我将端口恢复到9000。
现在我尝试以传统方式打开端口。
sudo iptables -I INPUT 1 -p tcp --dport 9000 -j ACCEPT
由于网络连接速度慢,无意中运行了这个命令三次。 所以这就是它的样子。
sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:9000
ACCEPT tcp -- anywhere anywhere tcp dpt:9000
ACCEPT tcp -- anywhere anywhere tcp dpt:9000
Chain FORWARD (policy ACCEPT) prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
此时它应该有效,但仍然遇到同样的问题。
答案 0 :(得分:0)
不确定您的网络拓扑是什么样的,但看起来您的iptables很好(如果是三重的)。检查您的安全组。您的EC2实例必须为其分配安全组,并且默认情况下所有端口都已关闭。如果要在端口9000上允许来自Internet的入站流量,则必须在与EC2实例关联的安全组上明确允许端口9000。
如果您有ELB或其他内容,那么您还必须允许这些设备上的特定流量。