web-dev-qa-db-ja.com

IPアドレス経由でEC2サーバーにアクセスできません

WebブラウザでEC2インスタンスのElasticPublicIPにアクセスするときにこの問題が発生します。 REDHAT 6.3をインストールし、nginx Webサーバー(稼働中)をインストールし、ポート80を有効にし、必要なものがすべてセットアップされていることを確認しました。

次に、パブリックIPを入力して、デフォルトのnginx Webページを表示しますが、何も起こりません。 IPアドレスにアクセスできませんでした。

これで、他のWebサイトにpingを実行できましたが、IPアドレスにpingを実行できませんでした。

何が起こっているのかを数時間試した後、REDHAT OSのネットワークをチェックする必要があると思いました。ネットワークに関連するものを編集しようとすると、サーバーへの接続が失われ、ネットワークを再起動できません。

ここで何が間違っているのですか? IPを介してサーバーにアクセスするのが難しいのはなぜですか?私は今何をする必要がありますか?

ありがとう。

編集。これがEC2インスタンスに関連付けられたセキュリティグループです

Ports   Protocol    Source
20-21   tcp 0.0.0.0/0   
22  tcp 0.0.0.0/0   
80  tcp 0.0.0.0/0   
14000-14050 tcp 0.0.0.0/0
2
redhatengineer6

したがって、ここで間違っている可能性のあることがいくつかあります。それらを1つずつテストし、問題をゼロにすることができます。

  1. まず、外部からポートに接続できるかどうかを確認します。これを行うには、このコマンドを使用します

    # telnet IP 80
    

    これを介して接続できる場合は、Webサーバーの設定に間違いなく問題があることを意味し、次のルールを検討するべきではありません。

  2. 最初のものが機能しない場合、2番目に確認することは、AWSセキュリティグループだけでなく、マシン内のiptablesです。同じことを行うには、このコマンドの出力を確認してください。

    # iptables -L -n
    

    特にDROPまたはREJECTに設定しない場合、デフォルトのポリシーは常にACCEPTである必要があります。 iptablesが問題であるかどうかをテストするには、ルールをフラッシュするか、iptablesサービスを停止して、iptablesを無効にしてみてください。

    ルールをフラッシュするには、次のコマンドを使用します。

    # iptables -F
    

    Iptablesサービスを停止するには:

    # service iptables stop
    

    次に、サイトにアクセスしてみます。

  3. 3番目のオプションは、マシン上のSelinuxをチェックすることです。 redhatマシンでは、SElinuxはデフォルトで有効になっています。同じことを確認するには、次のコマンドを使用してステータスを確認します。

    # getsebool
    

    それはこのようなことを言うべきです:

    getsebool:  SELinux is disabled
    

    有効になっている場合は、それが原因である可能性があります。次のコマンドで一時的に無効にしてみてください。

    # setenforce 0
    

    これにより、マシンのSElinuxが一時的に無効になります。これで問題が解決した場合は、/etc/sysconfig/selinuxの状態をEnforcingからdisabledに更新するだけで、マシンのSElinuxが完全に無効になります。

これがお役に立てば幸いです。

1
Napster_X

それが単なるWebトラフィックであり、インスタンスにsshを実行できる場合は、ほぼ確実にnginxの構成と関係があります。

1
GeoSword

Ssh Webトラフィックなどを許可するようにセキュリティグループファイアウォールを編集しましたか?
デフォルトのセキュリティグループファイアウォールはかなり厳しいです。

yourEC2コンソールから

Network & security -> Security groups -> default -> inbound

ドロップダウンからテンプレートルールを選択するか、カスタムルールを作成できます。

add rule -> apply rule changes

変更はほぼ瞬時に行われます

0
peteches

ポート80を許可するAWSセキュリティグループ設定に加えて、Redhatファイアウォールも確認してください。ポート80はデフォルトでは開いていません。

Redhatシステムでsystem-config-firewall-tuiを実行して、redhatのファイアウォール構成utilを開き、httpポート80へのアクセスを許可します。

0
Jason Floyd

GeekRideは、さまざまなトラブルシューティング手順を強調するという素晴らしい仕事をしました。私のデプロイメントに対する答えは、iptablesに関連していました。サービスを停止することは、問題をすばやく特定するための優れたヒントです。

この問題を解決するには、必ずポートをテーブルに「挿入」してください。リストの最後にある「すべて拒否」エントリの後に追加する可能性が高いため、追加しないでください。この例では、5を使用してポート22ルールの後に配置します。 ec2-userとして接続しているため、awsでSudoコマンドを追加します。

# sudu su
# iptables -L -n
# iptables -I INPUT 5 -p tcp --dport XXXXX -j ACCEPT

それが機能する場合は、iptablesサービスが再起動された場合に備えて必ず保存してください

# iptables-save
0
sirthomas