Não é possível abrir a porta na instância do Amazon EC2

1

Eu tenho uma API que hospedei com sucesso na instância da Amazon AMI. Eu sei que é certo, porque eu posso usá-lo localmente usando curl. Api hospedado na porta 8080.

Isso é o que eu coloquei no cmd para abrir a porta:

su
iptables -I INPUT -p tcp --dport 8080 -m state --state NEW -j ACCEPT
service iptables save
/etc/init.d/iptables restart

Eu desliguei o firewall também:

service iptables save
service iptables stop
chkconfig iptables off

É assim que minhas regras de entrada / saída aparecem no console da AWS:

E ainda não consigo acessar meu aplicativo via IP público do servidor de fora. Por que isso está acontecendo?

UPDATE

Resultado para /sbin/iptables -L :

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

UPDATE 2

netstat -ltpn result:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      -
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      -
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      -
tcp        0      0 127.0.0.1:8080              0.0.0.0:*                   LISTEN      3941/uwsgi
tcp        0      0 0.0.0.0:58704               0.0.0.0:*                   LISTEN      -
tcp        0      0 :::45589                    :::*                        LISTEN      -
tcp        0      0 :::22                       :::*                        LISTEN      -
tcp        0      0 :::111                      :::*                        LISTEN      -
    
por neustart47 27.03.2017 / 16:03

2 respostas

9

Da saída netstat , parece que seu aplicativo está escutando apenas na interface de loopback - 127.0.0.1:8080 e, portanto, você não consegue se conectar a ele fora da instância.

Ver, por exemplo, ssh service - 0.0.0.0:22 . Isso significa que o serviço está escutando em "todas as interfaces de rede".

Você precisa reconfigurar seu aplicativo para torná-lo não apenas em loopback.

Outra solução pode ser adicionar a regra iptables DNAT para que as solicitações recebidas sejam encaminhadas para a interface de loopback.

    
por 28.03.2017 / 16:47
0

Eu verificaria o grupo de segurança associado à Instância que você implantou e verifique se ele permite o tráfego de entrada na porta 8080. tanto a ACL da Rede quanto o grupo de segurança precisam permitir o tráfego.

você pode encontrar mais informações sobre grupos de segurança aqui: link

    
por 28.03.2017 / 16:56