Не удается получить доступ к EC2 через определенный порт, хотя я добавил группу безопасности - PullRequest
1 голос
/ 12 марта 2019

Я создал веб-приложение и установил его на экземпляр Windows EC2.

Поскольку он создан с помощью Node.js Express, и я ничего не касался локального хоста или портовых компонентов,

прослушивается через порт 3000 на npm start.

После того, как я сделал npm start на экземпляре EC2, я могу получить к нему доступ через "localhost: 3000" в EC2.

Но когда я пытаюсь получить доступ к нему извне EC2 с его общедоступного IP-адреса, например ip_address:3000, он продолжает возвращать ошибку истечения времени ожидания соединения.

Как я писал в заголовке, я добавил пользовательскую группу безопасности TCP, которая делает экземпляр открытым для любых IP-адресов и с портом 3000, но он все еще не работает.

Что я могу сделать? Что я, возможно, упускаю?

Заранее спасибо.

1 Ответ

1 голос
/ 12 марта 2019

Здесь может произойти что-то не так.

Во-первых, убедитесь, что ваше веб-приложение на самом деле работает с в экземпляре.
Чтобы сделать это на всех недавних окнах в powershell: Invoke-WebRequest http://localhost:3000.

Во-вторых, подтвердите, что группа безопасности в экземпляре разрешает входящий трафик для вашего назначенного порта - HTTP (80) или HTTPS (443).

В-третьих, поскольку вы упомянули, что у вашего экземпляра есть публичный IPv4-адрес, он должен находиться внутри VPC и подсети. Перейдите к службе VPC в Консоли AWS и взгляните на подсеть Network ACL для , которая . Возможно, он запрещает весь входящий трафик - делает настройки вашей группы безопасности неиспользованными.

Если вы не уверены, блокирует ли подсеть входящий трафик или нет, взгляните на эти документы .

...