パブリックIP経由でEC2インスタンスのサイトにアクセスできません


10

私はウィンドウ2008サーバーを備えたAmazon EC2マイクロインスタンスを所有しており、Javaを使用してTomcat 7サーバーにデプロイされたサンプルWebアプリケーションをそこにデプロイしました。インスタンスでローカルにアクセスできますが、AWSインスタンスの外部でアクセスしようとしたときに、AWSパブリックDNS /パブリックIPアドレス/インスタンスのElastic IPアドレスを使用して自宅のコンピューターから言うと、「Webページは利用不可"。

私はこのフォーラムで非常に多くの同様の質問をしました、そして私は彼らが求めているすべての設定を完了しましたが、それでも成功していません。

これが私が行った/確認したことです。

1. localhostが機能するため、アプリケーションはポート80でリッスンします。

2.インスタンスが使用しているセキュリティグループの下のすべてのユーザーに対して、ポート80のHTTPの受信ルールを追加しました。

3. Windowsインスタンスのファイアウォール設定を確認し、ポート80がブロックされていないことを確認しました。

4.ファイアウォールをオフにしても試しましたが、成功しませんでした。

誰かが私を助けてくれると本当にありがたいです。

ありがとう、NS


1
telnetはあなたとtracerouteに何を伝えますか?
Pratap 2014

回答:


5

JetBrains YouTrackをWindows Server 2012 ec2インスタンスにインストールしたときにも、同様のイライラする問題が発生しました。私にとってうまくいったのは、Javaが特に使用していたWindowsファイアウォールのポートを開き、World Wide Publishingサービスのポートを無効にすることでした。また、デフォルトのアカウントではなく、LocalSystemアカウントでYouTrackサービスを実行する必要がありました。

これを試して:

  • IISのデフォルトのWebサイトが使用されている場合はオフにする

  • 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 ESTABLISHED [java.exe]

  • サービスコントロールマネージャーを開き、サービスを右クリックして、プロパティダイアログを開きます。[ログオン]タブで、サービスを実行するアカウントとして[ ローカルシステムアカウント ]を選択します。このユーザーは管理者であることが重要です

  • ファイアウォールをオンに戻すことを強くお勧めします。
  • ファイアウォールの[受信の規則]タブを開き、World Wide Webサービス(HTTP受信)の規則を無効にします
  • 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(これは、Webアプリがデフォルトで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インスタンスにtelnetで接続できません。どうすれば修正できますか?AWSインスタンスでIISを検索してみましたが、実行中です。
user242725 2014

ありがとう。これは、インスタンスのドメイン、プライベート、パブリックファイアウォールをオフにした後に機能しました。しかし、確かではありません。インスタンスを保護し、同時にインスタンスの外部で自分のWebアプリケーションにアクセスするにはどうすればよいですか。
user242725 14

1

インバウンドTCPポート80のルールは、インスタンスのAWSセキュリティグループに入力する必要がある場合があります。


1

AWSコンソールからのパブリックコールをリッスンするために、ポートを使用可能にする必要がある場合があります。


AWSコンソールには多くの機能があり、おそらくもっと具体的にすることができます。
kmarsh 2015年


1

私にとって2つのこと:

  1. RDSインスタンスに接続されているセキュリティグループを変更して、トラフィックの送受信を許可する

  2. アプリケーションポートのRDSでインバウンドルールとアウトバウンドルールを設定する

詳細な手順:

  • AWSコンソールのトップバーで、[サービス]をクリックし、[EC2]を選択します

  • 次のウィンドウの左側のメニューのインスタンスの下で、インスタンスをクリックしてインスタンスを表示します

  • パブリックからアクセスするインスタンスを含むテーブルで、セキュリティグループという列まで右にスクロールします。このセキュリティグループをクリックします。

  • 表示されるテーブルで、セキュリティグループの説明と、受信、送信、タグなどの他のタブが表示されている一番下までスクロールします。
  • 受信タブをクリックします。編集をクリックします。デフォルトでは、1つのルール(RDP)があります。
  • さらに2つ追加しましょう
  • [ルールの追加]ボタンをクリックします。
  • タイプにすべてのトラフィック、プロトコルにすべてを選択
  • ポート範囲(0〜65535)のままにして、ソースをカスタムとして選択します。
  • これらすべてが両方のルールに適用されます2)最初のルールの場合、ソースの後に表示されるテキストボックスに0.0.0.0/0を入力します3)2番目のルールの場合は:: / 0 4)を入力します
  • 保存を押す

    AWS RDSにログインして、ファイアウォールを介してインバウンドとアウトバウンドのルールを設定します

  • コントロールパネルを起動します。[システムとセキュリティ](最初の可能性があります)をクリックし、[Windowsファイアウォール]をクリックします。次に、詳細設定をクリックします

  • 左側の[受信の規則]メニューをクリックします。

  • [アクション]タブ(右側)で、[新しいルール]をクリックします

  • ポートを選択し、次へをクリックします

  • [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ファイルを参照して、[パスワードの復号化]をクリックします。スタート->ファイル名を指定して実行-> mstsc->管理者としてのWindows認証付きのWindows IPとそのパスワードを介して接続するためのユーザー名とパスワードを取得します

LINUX Instanceの場合-> puttygenをダウンロードし、LOADボタンをクリックして.pemファイルを選択し、次にGENERATEボタンをクリックしてppkファイルを生成します。puttyを使用してIPを入力し、[接続]-> [SSH]-> [AUTH]-> [参照]で.ppkファイルを選択して、puttyセッションを保存します。


「SSHキーを使用してログインするにはどうすればよいですか」という質問があった場合、これは素晴らしい答えになります。しかし、問題は「ブラウザからWebページにアクセスする方法」でした。
ジェニーD
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.