Порт EC2 80 отказался подключаться по общедоступному IP-адресу, но может подключиться по частному IP-адресу.
Вопрос упрощенный
Я могу сделать, но нет или . Но с SSH сервера я могу запустить без каких-либо проблем. Кроме того, порт 80 и порт 4321 добавлены в . Почему это происходит?
История
Я новичок в AWS EC2. Недавно я создал экземпляр EC2 t4g nano и запустил сервер NodeJS с использованием PM2. Сервер прослушивает порт 4321. Затем с помощью iptables я перенаправил порт 80 на порт 4321. Затем в группах безопасности я добавил правило входящего трафика с «Anywhere IP» на порт 80 (HTTP).
Все работало, я мог подключиться к серверу по общедоступному IP-адресу экземпляра до сегодняшнего утра, когда внезапно не смог даже подключиться к серверу по SSH. Статус экземпляра в консоли AWS показывался как «работает», но при проверке статуса 1/2 не удалась. Он показал: «Не удалось достичь экземпляра». Затем я попытался перезапустить экземпляр, это сработало, и я смог использовать SSH.
Теперь я перезапустил PM2, а затем снова добавил правило перенаправления в iptables. Но теперь я не могу подключиться к порту 80, используя общедоступный IP-адрес.
Я могу бегатьcurl localhost:80
иcurl {privateip}:80
, подключается без проблем. Когда я бегуcurl {publicip}:80
илиcurl {publicip}
он показывает «Соединение отклонено». Как я уже сказал, порт 80 уже существует во правила для входящего трафика в группе безопасностивходящих правилах группы безопасности.
Я добавил порт 4321 во входящие правила группы безопасности и могу без проблем подключиться, используяcurl {publicip}:4321
но нетcurl ${publicip}:80
. Как это возможно? Я что-то пропустил?