Не вдається отримати доступ до сайту в екземплярі EC2 через public ip


10

У мене є мікроавтомобіль Amazon EC2 з сервером Windows 2008 і розгорнув там один зразок веб-програми, який використовує Java та розгорнутий на сервері tomcat 7. Я можу отримати доступ до нього локально, наприклад, але коли я намагався отримати доступ до нього за межами екземпляра AWS, дозволяє говорити зі свого домашнього комп'ютера за допомогою загальнодоступної DNS-адреси AWS / публічної IP-адреси / еластичної IP-адреси екземпляра, це дає мені "Веб-сторінка є недоступний".

Я пережив стільки подібних питань на цьому форумі, і я думаю, що я зробив усі налаштування, які вони просять зробити, але успіху досі немає.

Ось що я зробив / підтвердив.

1. localhost працює, тому програма прослуховує порт 80.

2. Додано вхідне правило для HTTP на порт 80 для всіх осіб із групи безпеки, яку використовує мій екземпляр.

3. перевірив налаштування брандмауера на екземплярі Windows, переконався, що порт 80 не заблокований.

4. Пробував навіть із відключенням брандмауера, але успіху не було.

Я дуже вдячний, якщо хтось може мені допомогти в цьому.

Спасибі, Н.С.


1
Що вам повідомляє telnet та прослідкуйте?
Пратап

Відповіді:


5

У мене була подібна розчарована проблема, коли я встановив JetBrains YouTrack на екземпляр Windows Server 2012 ec2. Для мене працювало відкриття портів брандмауера Windows, який спеціально використовувала Java, і відключення порту служби World Wide Publishing. Я також повинен був запустити службу YouTrack під обліковим записом LocalSystem замість облікового запису за замовчуванням.

Спробуйте це:

  • Вимкніть веб-сайт за замовчуванням у IIS, якщо він використовується

  • Запустіть netstat -a -b, щоб відкрити порти, які java.exe намагалася зв’язати, наприклад:

    TCP 0.0.0.0:80 WIN-9NFIG6IEPT6: 0 СПИСОК [java.exe]

    TCP 127.0.0.1:49306 WIN-9NFIG6IEPT6: 49307 Встановлено [java.exe]

  • Відкрийте диспетчер управління послугами та клацніть правою кнопкою миші на вашій службі та відкрийте діалогове вікно властивостей. На вкладці "Увійти як" виберіть Локальний системний обліковий запис під час роботи облікового запису, під яким працює служба. Важливо, щоб цей користувач був адміністратором

  • Настійно рекомендую знову ввімкнути брандмауер.
  • Відкрийте вкладку Правила вхідного екрану брандмауера та відключіть Правило всесвітньої веб-служби (HTTP-In)
  • Створіть нове правило для Tomcat за допомогою TCP Port 80 та будь-якого іншого порту, який може знадобитися.

  • Збережіть правило і протестуйте URL-адресу поза сервером.


4

Ви не повинні повністю вимикати налаштування брандмауера. Це поставить під загрозу безпеку вашого додатка. Замість цього змініть правила вхідного брандмауера на сервері Windows, щоб дозволити вхідний трафік на конкретні порти.

У мене була подібна проблема, коли я розгорнув додаток на Tomcat 8 на сервері Windows 2012, передбаченому через AWS EC2. Я міг отримати доступ до розгорнутої програми за адресою http: // localhost: 8080 з VM, але не з загальнодоступного Інтернету, замінивши рядок localhost в URL на загальнодоступну IP-адресу VM.

Це добре спрацювало після того, як я змінив правила брандмауера, щоб дозволити вхідний трафік через порт 80 (для http), порт 443 (для https) та порт 8080 (це порт, на якому моє веб-додаток було встановлено за замовчуванням на сервері tomcat.

Я задокументував конфігурації брандмауера та групи безпеки за посиланням нижче:

http://abhirampal.com/2015/08/04/firewall-config-for-java-web-app-hosted-on-aws-ec2-windows-2012-server/


1
Дивовижно, ти врятував мій день <3
Thamaraiselvam

1

Можливо, ви пропустили налаштування веб-сервера. Ви можете перевірити це, підключившись до сервера за допомогою:

telnet $IP 80

якщо ви не отримуєте помилку, можете підключитися. У цьому випадку ви не настроїли веб-сервер правильно.


Ви маєте рацію, я не в змозі підключитися через telnet з мого локального комп'ютера до aws екземпляра. Чи можете ви мені допомогти, як я можу це виправити? Я спробував шукати IIS на aws екземпляр, і він працює.
user242725

Дякую. Він працював після вимкнення, наприклад, доменного, приватного та публічного брандмауера. Але не впевнений, як я можу захистити екземпляр і одночасно отримати доступ до свого веб-сайту поза інстанцією.
користувач242725

1

Правило для вхідного TCP-порту 80 може знадобитися ввести у групу безпеки AWS для вашого примірника.


1

Вам може знадобитися зробити порт доступним для прослуховування будь-якого публічного дзвінка з консолі AWS.


Консоль AWS має безліч функцій, можливо, ви можете бути більш конкретними.
кмарш


1

Дві речі для мене:

  1. Модифікація групи безпеки, приєднаної до мого екземпляра RDS, щоб дозволити трафік в'їжджати та виходити

  2. Встановлення вхідних та вихідних правил у RDS для порту програми

Детальні кроки:

  • На верхній панелі вашої консолі AWS натисніть Послуги, виберіть EC2

  • У лівому меню наступного вікна під інстанціями натисніть екземпляри, щоб переглянути їх

  • У таблиці, що містить екземпляр, до якого ви хочете отримати доступ від загальнодоступних, прокрутіть праворуч до стовпця з назвою Групи безпеки. Натисніть на цю групу безпеки.

  • У таблиці, що відображається, прокрутіть до її нижньої частини опис групи безпеки та інші вкладки, такі як Вхідні, Вихідні, Теги
  • Перейдіть на вхідну вкладку. Клацніть редагувати. За замовчуванням існує одне правило (RDP).
  • Додамо ще два
  • Натисніть кнопку Додати правило.
  • Виберіть Весь трафік для типу, Все для протоколу
  • Залиште діапазон портів (0 - 65535), виберіть джерело як Custom.
  • Все це стосується обох правил 2) Для першого правила в текстовому полі, що з’являється після джерела, поставте 0.0.0.0/0 3) Для другого правила поставте :: / 0 4)
  • Натисніть Зберегти

    Тепер увійдіть у свій AWS RDS, щоб встановити правила вхідного та вихідного через стіну пожежі

  • Запустіть панель управління. Клацніть на Система та безпека (може бути першою) та натисніть на Windows Fire wall. Потім натисніть на Розширені налаштування

  • Клацніть меню Вхідні правила ліворуч.

  • На вкладці "Дії" (справа) натисніть кнопку "Нове правило"

  • Виберіть Порт і натисніть кнопку Далі

  • Виберіть TCP (якщо він не вибраний), а нижче Виберіть конкретні локальні порти.

  • У полі введіть номер порту вашої програми та натисніть кнопку Далі

  • Виберіть Дозволити з'єднання та натисніть кнопку Далі.

  • Вкажіть назву правила. Щось на зразок назви вашої програми для читання та натисніть кнопку "Готово"

Потім дозволяє налаштувати поточний трафік

  • У тому ж меню, що і для вхідних правил, виберіть Правила вихідних даних і дотримуйтесь тієї ж процедури, що описана для вхідних правил
  • Після цих налаштувань ви повинні мати доступ до своєї програми ззовні

0

Перейдіть за посиланням. Це було б більш конкретно.

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html

Ви можете дозволити зв’язок між усіма примірниками, пов’язаними з цією групою безпеки, або між екземплярами, пов’язаними з іншою групою безпеки, та прикладами, пов’язаними з цією групою безпеки. Клацніть Додати правило, виберіть Усі ICMP, а потім почніть вводити ідентифікатор групи безпеки в Джерело; це надає вам список груп безпеки. Виберіть зі списку групу безпеки. Повторіть кроки для протоколів TCP та UDP. Коли ви закінчите, натисніть кнопку Зберегти.


0

В основному це проблема з брандмауером Windows. Я намагався ті ж кроки, що і ти робив, це не було успішно. Момент, коли я повернувся від брандмауера, це було добре. Я думаю, що на безпеку не слід впливати, оскільки ми налаштовуємо вхідні вихідні правила.


-1

Для інстанції WINDOWS - Клацніть правою кнопкою миші ім'я екземпляра EC-2, перейдіть до .pem-файлу, створеного під час створення інстанції, та натисніть Розширити пароль. Ви отримаєте ім'я користувача та пароль для підключення через Пуск -> Запуск -> mstsc -> IP-адреса Windows з автентифікацією Windows як адміністратора та його пароль

Для інстанції LINUX -> Завантажте puttygen та натисніть кнопку LOAD, щоб вибрати .pem файл, а потім натисніть кнопку GENERATE, щоб створити файл ppk. Через шпаклівку введіть IP-адресу та в розділі З'єднання -> SSH -> AUTH -> Огляд, щоб вибрати .ppk-файл та зберегти сеанси шпаклівки.


Це було б чудовою відповіддю, якби питання було "як мені ввійти за допомогою свого ключа SSH". Але питання полягало в тому, "як я отримую доступ до веб-сторінки зі свого браузера".
Дженні Д
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.