Не удается открыть порт на экземпляре Amazon EC2
У меня есть API, который я успешно разместил на экземпляре Amazon AMI. Я знаю, что это точно, потому что я могу использовать его локально, используя curl. Api размещен на порте 8080.
Вот что я вставил в cmd для открытого порта:
su
iptables -I INPUT -p tcp --dport 8080 -m state --state NEW -j ACCEPT
service iptables save
/etc/init.d/iptables restart
Я также выключил брандмауэр:
service iptables save
service iptables stop
chkconfig iptables off
Вот как выглядят мои правила out/in в консоли AWS:
И я до сих пор не могу получить доступ к своему приложению через публичный IP-адрес сервера извне. Почему это происходит?
ОБНОВИТЬ
Результат для /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
ОБНОВЛЕНИЕ 2
netstat -ltpn
результат:
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 -
2 ответа
От netstat
вывод, кажется, что ваше приложение прослушивает только интерфейс обратной связи - 127.0.0.1:8080
и поэтому вы не можете подключиться к нему за пределами экземпляра.
См. Например ssh
оказание услуг - 0.0.0.0:22
, Это означает, что служба прослушивает "все сетевые интерфейсы".
Вам необходимо перенастроить ваше приложение, чтобы оно слушало не только по обратной связи.
Другое решение может быть добавить iptables DNAT
правило, чтобы входящие запросы пересылались в интерфейс обратной связи.
Я хотел бы взглянуть на группу безопасности, связанную с развернутым вами экземпляром, и убедиться, что он разрешает входящий трафик через порт 8080. Как сетевой ACL, так и группа безопасности должны разрешать трафик.
вы можете найти больше информации о группах безопасности здесь: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html