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
したがって、ここで間違っている可能性のあることがいくつかあります。それらを1つずつテストし、問題をゼロにすることができます。
まず、外部からポートに接続できるかどうかを確認します。これを行うには、このコマンドを使用します
# telnet IP 80
これを介して接続できる場合は、Webサーバーの設定に間違いなく問題があることを意味し、次のルールを検討するべきではありません。
最初のものが機能しない場合、2番目に確認することは、AWSセキュリティグループだけでなく、マシン内のiptablesです。同じことを行うには、このコマンドの出力を確認してください。
# iptables -L -n
特にDROP
またはREJECT
に設定しない場合、デフォルトのポリシーは常にACCEPTである必要があります。 iptablesが問題であるかどうかをテストするには、ルールをフラッシュするか、iptablesサービスを停止して、iptablesを無効にしてみてください。
ルールをフラッシュするには、次のコマンドを使用します。
# iptables -F
Iptablesサービスを停止するには:
# service iptables stop
次に、サイトにアクセスしてみます。
3番目のオプションは、マシン上のSelinuxをチェックすることです。 redhatマシンでは、SElinuxはデフォルトで有効になっています。同じことを確認するには、次のコマンドを使用してステータスを確認します。
# getsebool
それはこのようなことを言うべきです:
getsebool: SELinux is disabled
有効になっている場合は、それが原因である可能性があります。次のコマンドで一時的に無効にしてみてください。
# setenforce 0
これにより、マシンのSElinuxが一時的に無効になります。これで問題が解決した場合は、/etc/sysconfig/selinux
の状態をEnforcing
からdisabled
に更新するだけで、マシンのSElinuxが完全に無効になります。
これがお役に立てば幸いです。
それが単なるWebトラフィックであり、インスタンスにsshを実行できる場合は、ほぼ確実にnginxの構成と関係があります。
Ssh Webトラフィックなどを許可するようにセキュリティグループファイアウォールを編集しましたか?
デフォルトのセキュリティグループファイアウォールはかなり厳しいです。
yourEC2コンソールから
Network & security -> Security groups -> default -> inbound
ドロップダウンからテンプレートルールを選択するか、カスタムルールを作成できます。
add rule -> apply rule changes
変更はほぼ瞬時に行われます
ポート80を許可するAWSセキュリティグループ設定に加えて、Redhatファイアウォールも確認してください。ポート80はデフォルトでは開いていません。
Redhatシステムでsystem-config-firewall-tui
を実行して、redhatのファイアウォール構成utilを開き、httpポート80へのアクセスを許可します。
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