Почему я не могу подключиться к своему экземпляру Amazon EC2 через его Elastic IP-адрес?

37

Сервер работает нормально через назначенную Amazon запись DNS, но я не могу связаться с ней (используя браузер) через Elastic IP-адрес, назначенный Amazon. Пинг тоже не работает. Я пытаюсь подтвердить, что это достижимо, прежде чем я добавлю IP-адрес к своим собственным записям DNS.

Гвидо Ансельми
источник
1
Вы уверены, что используете свой эластичный IP, а не свой частный IP-адрес?
@ Роберт - Привет, хорошо, адрес aws. *** не будет искать с помощью ping (но работает в браузере), поэтому я на самом деле не знаю, как это выяснить. Я пробовал пинговать и пробовал несколько интернет-сайтов, которые делают поиск.
@ Петр - Да. Это «эластичный IP-адрес», а не частный IP-адрес. Он также используется Amazon в шапке для вкладок статуса.
Гвидо, ему назначены общедоступный DNS и идентификатор экземпляра?
@ Петр - Да. И общедоступный DNS доступен через браузер. В настоящее время я работаю за брандмауэром, не уверенный, повлияет ли это на ..... просто попытался пропинговать известный сайт (msn.com), но это не удалось. Привязывая мой телефон ...
Гвидо Ансельми

Ответы:

37

Вещи, чтобы проверить:

  • Ваш эластичный IP связан с вашим экземпляром?
  • Ваша группа безопасности экземпляра разрешает входящие соединения?
  • Ваш экземпляр межсетевого экрана разрешает входящие соединения?
  • Ваше приложение слушает?
Камень
источник
Была группа безопасности для меня, спасибо! Они никогда не упоминали об этом ни в одном учебнике по AWS. :(
Эмотальность
1
Другая вещь, чтобы проверить: попробуйте перезапустить экземпляр EC2. Это помогло мне (эластичный IP был связан с экземпляром во время его работы).
nedned
Для меня это был также перезапуск инстанса, работавший волшебным образом!
Artipixel
У меня та же проблема, что и у ОП. Я проверил пункты 1, 2, 4 в ответе, также перезагрузил экземпляр EC2. Как проверить 3-й пункт «Ваш экземпляр брандмауэра разрешает входящие соединения»? Разрешены ли входящие соединения межсетевым экраном экземпляра EC2?
Индоминус
26

Как уже упоминалось, группа безопасности для вашего экземпляра EC2 может не разрешить порт HTTP.

Сначала найдите группу безопасности, которую использует ваш экземпляр.

введите описание изображения здесь

Затем в разделе «Сеть и безопасность» перейдите в раздел « Группы безопасности ». Выберите группу безопасности своего экземпляра и добавьте правило входящего настраиваемого TCP для диапазона портов 80.

Группы безопасности в EC2

Джеймс Лаврук
источник
2
1-й адекватный ответ - спасибо.
Артур Кушман
2
Я скорее принял этот ответ, потому что AWS EC2 действительно создает экземпляр без открытого порта 80 для TCP-соединений по умолчанию.
Артур Кушман
Гораздо лучший ответ, чем ответ Стоуна. Этот (Джеймс) ответ должен быть принят как правильный ответ, потому что это фактический ответ. Ответ Стоуна слишком общий, т.е. Вещи, чтобы проверить!
Каннас
Сработало для меня .. Я просто добавил пользовательское правило TCP с портом: 80 .. Спасибо
Мухаммед Азим,
О, это было это! Это сводило меня с ума в течение нескольких часов. Я создал новую группу безопасности со всеми правильными привязками. Проверил брандмауэр на экземпляре, проверил, работает ли веб-сервис или нет, и настройки VPC Security. Но оказалось, что Экземпляр использует совершенно другую группу безопасности под названием "launch-wizard-1" !!
Золбаяр
16

Также убедитесь, что таблица маршрутов VPC настроена так, чтобы IP-адреса вне VPC (0.0.0.0/0) передавались из подсети в шлюз Интернета.

Перейдите к VPC> Таблицы маршрутов; Вкладка «Маршрут». Проверьте, что Назначение 'сопоставлено' с Идентификатором Целевого интернет-шлюза (кроме локального).

Г Сет
источник
Следуя приведенной выше инструкции, я добавил маршрут по умолчанию, используя интернет-шлюз в качестве цели. Чтобы указать маршрут по умолчанию, укажите 0.0.0.0/0 в качестве пункта назначения. Как только это было сделано, я смог получить доступ к своему экземпляру из Интернета, используя его публичный IP-адрес
Питер Смоллвуд,
Меня устраивает. Но мне любопытно, что до того, как я настроился следующим образом, у меня уже был другой существующий экземпляр, доступный из Интернета. Почему не в этот раз?
shintaroid
10

Просто добавьте этот ответ, так как он может помочь другим новичкам EC2. Если общий DNS для вашего экземпляра EC2: Public DNS: ec2-46-137-53-149.eu-west-1.compute.amazonaws.com, вы можете получить доступ к экземпляру, используя числовую часть адреса DNS. В вышеуказанном случае http://46.137.53.149/

Очевидно, вам нужно будет открыть соответствующий порт TCP в группе / профиле безопасности, связанных с вашим экземпляром, как упомянуто выше.

Частный IP (например , 10.235.47.101) не доступен из внешней сети AWS и только полезно , когда у вас есть кластер EC2 узлов и хотят быстрее связь между ними.

nelsonic
источник
5

Пара вопросов: к какому порту вы пытаетесь получить доступ? У вас этот порт открыт в группах безопасности? У вас есть приложение, прослушивающее этот порт?

Если бы мне пришлось угадывать, ваши группы безопасности не настроены правильно. Обязательно откройте их по правильным IP-адресам или по всему миру (0.0.0.0/0), если вы собираетесь получить доступ к этому порту с нескольких IP-адресов.

Если все это не так, то отсоедините и перераспределите IP-адрес для экземпляра.

chantheman
источник
@ Chan-da-man - Да, порты открыты, и приложение прослушивает. Точно такой же URL за исключением доменного имени, поменяемого местами с IP.
Гвидо Ансельми
Когда вы пингуете полный амазонный cname, он возвращается с эластичным IP?
песнопение