Mam mikro instancję Amazon EC2 z serwerem Windows 2008 i wdrożyłem tam jedną przykładową aplikację internetową, która używa java i wdrożoną na serwerze tomcat 7. Jestem w stanie uzyskać do niego dostęp lokalnie na instancji, ale kiedy próbowałem uzyskać do niego dostęp poza instancją AWS, powiedzmy z mojego komputera domowego, używając publicznego AWS / publicznego adresu IP / elastycznego adresu IP instancji, daje mi „strona internetowa jest niedostępne".
Przeszedłem przez tak wiele podobnych pytań na tym forum i myślę, że wykonałem wszystkie ustawienia, o które proszą, ale nadal nie udało mi się.
Oto co zrobiłem / potwierdziłem.
1. localhost działa, więc aplikacja nasłuchuje na porcie 80.
2. dodano regułę ruchu przychodzącego dla HTTP na porcie 80 dla wszystkich w grupie zabezpieczeń, z której korzysta moja instancja.
3. sprawdził ustawienia zapory w instancji Windows, upewnił się, że port 80 nie jest zablokowany.
4. próbował nawet z wyłączoną zaporą ogniową, ale bez powodzenia.
Byłbym bardzo wdzięczny, gdyby ktoś mógł mi w tym pomóc.
Dzięki, NS
źródło
Odpowiedzi:
Miałem podobny frustrujący problem, gdy zainstalowałem JetBrains YouTrack w instancji Windows Server 2012 ec2. Dla mnie zadziałało otwarcie portów zapory systemu Windows, których konkretnie używała Java, i wyłączenie portu usługi World Wide Publishing. Musiałem także uruchomić usługę YouTrack na koncie LocalSystem zamiast konta domyślnego.
Spróbuj tego:
Wyłącz domyślną stronę internetową w IIS, jeśli jest używana
Uruchom komendę netstat -a -b, aby odkryć porty, które java.exe próbował powiązać np. Z:
TCP 0.0.0.0:80 WIN-9NFIG6IEPT6: 0 LISTENING [java.exe]
TCP 127.0.0.1:49306 WIN-9NFIG6IEPT6: 49307 ESTABLISHED [java.exe]
Otwórz menedżera kontroli usług i kliknij prawym przyciskiem myszy swoją usługę i otwórz okno właściwości. Na karcie Zaloguj się jako wybierz Lokalne konto systemowe jako konto, na którym działa usługa. Ważne jest, aby ten użytkownik był administratorem
Utwórz nową regułę dla Tomcat z TCP Port 80 i każdym innym portem, którego może potrzebować.
Zapisz regułę i przetestuj swój adres URL spoza serwera.
źródło
Nie powinieneś całkowicie wyłączać ustawień zapory. Zagrażałoby to bezpieczeństwu Twojej aplikacji. Zamiast tego zmodyfikuj reguły zapory dla serwera Windows dla ruchu przychodzącego na określonych portach.
Miałem podobny problem, gdy wdrożyłem aplikację na Tomcat 8 na serwerze Windows 2012 udostępnianym za pośrednictwem AWS EC2. Mogłem uzyskać dostęp do wdrożonej aplikacji na http: // localhost: 8080 z poziomu maszyny wirtualnej, ale nie z publicznego Internetu po zamianie ciągu localhost w adresie URL na publiczny adres IP maszyny wirtualnej.
Działa dobrze po zmianie reguł zapory, aby zezwolić na ruch przychodzący na porcie 80 (dla http), porcie 443 (dla https) i porcie 8080 (jest to port, przy którym moja aplikacja internetowa została domyślnie wdrożona na serwerze tomcat.
Udokumentowałem konfigurację zapory sieciowej i grupy zabezpieczeń pod linkiem poniżej:
http://abhirampal.com/2015/08/04/firewall-config-for-java-web-app-hosted-on-aws-ec2-windows-2012-server/
źródło
Prawdopodobnie źle skonfigurowałeś serwer WWW. Możesz to sprawdzić, łącząc się z serwerem poprzez:
jeśli nie pojawia się błąd, możesz się połączyć. W takim przypadku serwer WWW nie został poprawnie skonfigurowany.
źródło
Reguła dla przychodzącego portu TCP 80 może wymagać wprowadzenia w grupie bezpieczeństwa AWS dla twojej instancji.
źródło
Konieczne może być udostępnienie portu, aby można było słuchać publicznych połączeń z konsoli AWS.
źródło
Kliknij ten link http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/using-network-security.html , Grupy bezpieczeństwa sekcji
Utwórz grupę zabezpieczeń dla instancji EC2, aby umożliwić połączenia na pożądanych portach.
źródło
Dwie rzeczy dla mnie:
Modyfikacja grupy zabezpieczeń dołączonej do mojej instancji RDS w celu umożliwienia ruchu do i z powrotem
Ustawianie reguł przychodzących i wychodzących w RDS dla portu aplikacji
Szczegółowe kroki:
Na górnym pasku konsoli AWS kliknij Usługi, wybierz EC2
W menu po lewej stronie następnego okna, w instancjach kliknij instancje, aby wyświetlić instancje
W tabeli zawierającej instancję, do której chcesz uzyskać dostęp publicznie, przewiń w prawo do kolumny o nazwie Grupy zabezpieczeń. Kliknij tę grupę zabezpieczeń.
Hit Save
Teraz zaloguj się do systemu AWS RDS, aby ustawić reguły ruchu przychodzącego i wychodzącego przez ścianę ogniową
Uruchom panel sterowania. Kliknij System and Security (może być pierwszy) i kliknij Windows Fire wall. Następnie kliknij Ustawienia zaawansowane
Kliknij menu Reguły ruchu przychodzącego po lewej stronie.
Na karcie Działania (po prawej) kliknij opcję Nowa reguła
Wybierz Port i kliknij Dalej
Wybierz TCP (jeśli nie wybrano), a poniżej Wybierz określone porty lokalne.
W polu wpisz numer portu aplikacji i kliknij przycisk Dalej
Wybierz Zezwalaj na połączenie i kliknij przycisk Dalej.
Podaj nazwę reguły. Coś w rodzaju nazwy aplikacji do celów czytelności i kliknij przycisk Zakończ
Następnie skonfiguruj bieżący ruch
źródło
Proszę odnieść się do linku .. To byłoby bardziej szczegółowe.
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html
Można zezwolić na komunikację między wszystkimi instancjami powiązanymi z tą grupą zabezpieczeń lub między instancjami powiązanymi z inną grupą zabezpieczeń a instancjami powiązanymi z tą grupą zabezpieczeń. Kliknij opcję Dodaj regułę, wybierz opcję Wszystkie ICMP, a następnie zacznij wpisywać identyfikator grupy zabezpieczeń w polu Źródło; zapewnia to listę grup zabezpieczeń. Wybierz grupę zabezpieczeń z listy. Powtórz kroki dla protokołów TCP i UDP. Po zakończeniu kliknij Zapisz.
źródło
Jest to głównie problem z Zaporą systemu Windows. Próbowałem tych samych kroków, co Ty, ale nie powiodło się. W momencie, gdy wyłączyłem zaporę, było dobrze. Myślę, że nie powinno to mieć wpływu na bezpieczeństwo, ponieważ konfigurujemy reguły ruchu wychodzącego.
źródło
W przypadku wystąpienia WINDOWS - kliknij prawym przyciskiem myszy nazwę wystąpienia EC-2, przejdź do pliku .pem utworzonego podczas tworzenia wystąpienia i kliknij opcję Odszyfruj hasło. Otrzymasz nazwę użytkownika i hasło do połączenia za pomocą Start -> Uruchom -> mstsc -> Windows IP z uwierzytelnianiem Windows jako Administrator i jego hasło
W przypadku wystąpienia LINUX -> Pobierz puttygen i kliknij przycisk LOAD, aby wybrać plik .pem, a następnie kliknij przycisk GENERATE, aby wygenerować plik ppk. Za pomocą putty wprowadź adres IP i w obszarze Połączenia -> SSH -> AUTH -> Przeglądaj, aby wybrać plik .ppk i zapisać sesje putty.
źródło