퍼블릭 IP를 통해 EC2 인스턴스의 사이트에 액세스 할 수 없음


10

window 2008 서버가있는 Amazon EC2 마이크로 인스턴스가 있고 Java를 사용하고 tomcat 7 서버에 배포 된 샘플 웹 애플리케이션 하나를 배포했습니다. 인스턴스에서 로컬로 액세스 할 수 있지만 AWS 인스턴스 외부에서 액세스하려고하면 AWS 퍼블릭 DNS / 퍼블릭 IP 주소 / 인스턴스의 탄력적 IP 주소를 사용하여 가정용 컴퓨터에서 말할 수 있습니다. 사용할 수 없습니다".

나는이 포럼에서 비슷한 질문을 많이했으며 그들이 요구하는 모든 설정을 완료했지만 여전히 성공하지 못했다고 생각합니다.

여기 내가 한 것 / 확인한 것입니다.

1. localhost가 작동하므로 응용 프로그램은 포트 80에서 수신 대기합니다.

2. 내 인스턴스가 사용하는 보안 그룹의 모든 사람을 위해 포트 80의 HTTP에 대한 인바운드 규칙을 추가했습니다.

3. Windows 인스턴스에서 방화벽 설정을 확인하고 포트 80이 차단되지 않았는지 확인하십시오.

4. 방화벽을 끈 상태에서도 시도했지만 성공하지 못했습니다.

어떤 사람이 나를 도울 수 있다면 정말 감사하겠습니다.

고마워, NS


1
텔넷은 무엇을 알려주고 경로를 추적합니까?
Pratap

답변:


5

Windows Server 2012 ec2 인스턴스에 JetBrains YouTrack을 설치할 때 비슷한 좌절 문제가있었습니다. 나를 위해 일한 것은 java가 특별히 사용하는 Windows 방화벽 포트를 열고 World Wide Publishing 서비스 포트를 비활성화하는 것이 었습니다 . 또한 기본 계정 대신 LocalSystem 계정으로 YouTrack 서비스를 실행해야했습니다.

이 시도:

  • 사용중인 경우 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) 규칙을 사용하지 않도록 설정하십시오.
  • TCP 포트 80 및 필요한 다른 포트를 사용하여 Tomcat에 대한 새 규칙을 작성하십시오.

  • 규칙을 저장하고 서버 외부에서 URL을 테스트하십시오.


4

방화벽 설정을 완전히 해제해서는 안됩니다. 앱의 보안이 손상 될 수 있습니다. 대신 특정 포트에서 들어오는 트래픽을 허용하도록 Windows 서버 인바운드 방화벽 규칙을 수정하십시오.

AWS EC2를 통해 프로비저닝 된 Windows 2012 서버의 Tomcat 8에 앱을 배포 한 것과 비슷한 문제가있었습니다. URL의 문자열 localhost를 VM의 공용 IP 주소로 바꾼 후 VM 내 에서 http : // localhost : 8080 의 배포 된 앱에 액세스 할 수 있지만 공용 인터넷에서는 액세스 할 수 없습니다.

포트 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

오류가 발생하지 않으면 연결할 수 있습니다. 이 경우 웹 서버를 올바르게 설정하지 않았습니다.


당신은 옳습니다. 내 로컬 컴퓨터에서 AWS 인스턴스로 텔넷을 통해 연결할 수 없습니다. 어떻게 고칠 수 있습니까? AWS 인스턴스에서 IIS를 찾으려고했는데 실행 중입니다.
user242725

감사. 인스턴스에서 도메인, 개인 및 공용 방화벽을 끈 후에 작동했습니다. 그러나 확실하지는 않지만 어떻게 인스턴스를 보호하고 동시에 인스턴스 외부의 웹 애플리케이션에 액세스 할 수 있습니까?
user242725

1

인스턴스의 AWS 보안 그룹에 인바운드 TCP 포트 80 규칙을 입력해야 할 수 있습니다.


1

AWS 콘솔에서 퍼블릭 통화를 수신하려면 포트를 사용할 수 있어야합니다.


AWS 콘솔에는 많은 기능이 있으며 더 구체적 일 수도 있습니다.
kmarsh


1

나를 위해 두 가지 :

  1. 트래픽이 들어오고 나가도록 RDS 인스턴스에 연결된 보안 그룹 수정

  2. 애플리케이션 포트에 대한 RDS에서 인바운드 및 아웃 바운드 규칙 설정

세부 단계 :

  • AWS 콘솔의 상단 표시 줄에서 서비스를 클릭하고 EC2를 선택하십시오.

  • 다음 창의 왼쪽 메뉴에서 인스턴스 아래에서 인스턴스를 클릭하여 인스턴스를 봅니다.

  • 공개적으로 액세스하려는 인스턴스가 포함 된 테이블에서 보안 그룹이라는 열로 오른쪽으로 스크롤하십시오. 이 보안 그룹을 클릭하십시오.

  • 표시되는 테이블에서 보안 그룹 및 인바운드, 아웃 바운드, 태그와 같은 다른 탭에 대한 설명이있는 맨 아래로 스크롤하십시오.
  • 인바운드 탭을 클릭하십시오. 편집을 클릭하십시오. 기본적으로 하나의 규칙 (RDP)이 있습니다.
  • 두 개 더 추가하자
  • 규칙 추가 버튼을 클릭하십시오.
  • 유형에 대해 모든 트래픽, 프로토콜에 대해 모두를 선택하십시오.
  • 포트 범위 (0-65535)를 그대로두고 소스를 사용자 정의로 선택하십시오.
  • 이 두 규칙 모두에 적용됩니다. 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를 선택한 다음 소스에 보안 그룹의 ID 입력을 시작하십시오. 보안 그룹 목록이 제공됩니다. 목록에서 보안 그룹을 선택하십시오. TCP 및 UDP 프로토콜에 대해 단계를 반복하십시오. 완료되면 저장을 클릭하십시오.


0

그것은 주로 Windows 방화벽의 문제입니다. 성공하지 못한 것과 같은 단계를 시도했습니다. 내가 방화벽을 돌린 순간 괜찮 았습니다. 인바운드 아웃 바운드 규칙을 구성 할 때 보안에 영향을 미치지 않아야한다고 생각합니다.


-1

WINDOWS 인스턴스의 경우 EC-2 인스턴스 이름을 마우스 오른쪽 버튼으로 클릭하고 인스턴스 생성 중에 생성 된 .pem 파일을 찾아서 암호 해독을 클릭하십시오. 관리자로 Windows 인증을 사용하여 시작-> 실행-> mstsc-> Windows IP를 통해 연결할 사용자 이름과 비밀번호를 얻습니다.

Linux 인스턴스-> puttygen 다운로드 및 LOAD 버튼을 클릭하여 .pem 파일을 선택한 다음 GENERATE 버튼을 클릭하여 ppk 파일을 생성하십시오. 퍼티를 통해 IP를 입력하고 Connections-> SSH-> AUTH-> Browse에서 .ppk 파일을 선택하고 퍼티 세션을 저장하십시오.


"SSH 키로 어떻게 로그인합니까?" 그러나 문제는 "브라우저에서 웹 페이지에 액세스하는 방법"이었습니다.
Jenny D
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.