AWS EC2上的端口问题

时间:2016-04-13 14:15:06

标签: port firewall iptables

我正在为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

此时它应该有效,但仍然遇到同样的问题。

1 个答案:

答案 0 :(得分:0)

不确定您的网络拓扑是什么样的,但看起来您的iptables很好(如果是三重的)。检查您的安全组。您的EC2实例必须为其分配安全组,并且默认情况下所有端口都已关闭。如果要在端口9000上允许来自Internet的入站流量,则必须在与EC2实例关联的安全组上明确允许端口9000。

如果您有ELB或其他内容,那么您还必须允许这些设备上的特定流量。