EADDRNOTAVAIL при использовании только экземпляра EC2

Мое приложение узла слушает порт 8080. Когда я добавляю

app.listen(port,'50.30.217.289');

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

EADDRNOTAVAIL

Как это исправить?

2 ответа

То, что вы пытаетесь сделать, это не то, как это работает в EC2.

Общедоступный IP-адрес сопоставляется первичному частному IP-адресу посредством преобразования сетевых адресов (NAT).

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html

Если вы изучите свои сетевые интерфейсы на машине, вы не найдете на них общедоступных IP-адресов. Публичные IP-адреса транслируются на частные адреса в интернет-шлюзе. Это делается автоматически без необходимости настройки, для случаев с публичными IP-адресами.

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

EADDRNOTAVAIL означает, что ваш экземпляр EC2 не имеет сетевого интерфейса, которому назначен этот IP-адрес, поэтому вы не можете начать слушать его.

Другие вопросы по тегам