Почему я не могу подключиться к своему экземпляру 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 узлов и хотят быстрее связь между ними.


5

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

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

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


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

Когда вы пингуете полный амазонный cname, он возвращается с эластичным IP?
— песнопение
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.