回答:
新しいEC2セキュリティグループの受信ルールを追加します。
ping
すべてではなく、のみを許可します。
数年遅れますが、うまくいけばこれは他の誰かを助けるでしょう...
1)最初に、EC2インスタンスにパブリックIPがあることを確認します。パブリックDNSまたはパブリックIPアドレス(以下に丸で囲まれている)がある場合は、問題ありません。これは、pingするアドレスになります。
2)次に、Amazonネットワークルールでエコーリクエストが許可されていることを確認します。EC2のセキュリティグループに移動します。
3)次に、Windowsファイアウォールはデフォルトで受信エコー要求をブロックします。Windowsファイアウォールの例外を作成して、エコー要求を許可します...
4)できました!うまくいけば、サーバーにpingできるようになります。
EC2インスタンスが属するセキュリティグループを編集してアクセスを許可する必要があります(または、新しいセキュリティグループを作成してインスタンスを追加する必要があります)。
デフォルトでは、すべてが拒否されます。セキュリティグループに追加する必要のある例外は、インターネットで利用できるようにする必要のあるサービスによって異なります。
それはウェブサーバである場合は、ポートへのアクセスを許可する必要があります80
のために0.0.0.0/0
(任意のIPアドレスを意味します)。
インスタンスへのpingを許可するには、ICMPトラフィックを有効にする必要があります。
AWSウェブコンソールは、関連するドロップダウンリストで最もよく使用されるオプションのいくつかを提供します。
All ICMP
指定されたセキュリティグループを使用してマシンへのトラフィックを有効にすることは、私にとって非常に役立ちました。
セキュリティグループのカスタムICMPルールは、少なくとも私にとっては、必要なものではありません。ただし、次のルールが機能します。
Type: All ICMP
Protocol: TCP
Port range: 0 - 65535
Source: Anywhere - 0.0.0.0/0
これを実行すると、他のインスタンスにpingできるようになります。次のようなものが表示されます。
PING 10.0.0.15 (10.0.0.15): 56 data bytes
64 bytes from 10.0.0.14: icmp_seq=1 ttl=64 time=3.9 ms
64 bytes from 10.0.0.14: icmp_seq=2 ttl=64 time=3.9 ms
64 bytes from 10.0.0.14: icmp_seq=3 ttl=64 time=10.6 ms
64 bytes from 10.0.0.14: icmp_seq=4 ttl=64 time=40.6 ms
64 bytes from 10.0.0.14: icmp_seq=5 ttl=64 time=3.8 ms
64 bytes from 10.0.0.14: icmp_seq=6 ttl=64 time=5.3 ms
64 bytes from 10.0.0.14: icmp_seq=7 ttl=64 time=6.5 ms
64 bytes from 10.0.0.14: icmp_seq=8 ttl=64 time=3.5 ms
64 bytes from 10.0.0.14: icmp_seq=9 ttl=64 time=21.0 ms
64 bytes from 10.0.0.14: icmp_seq=10 ttl=64 time=3.5 ms
64 bytes from 10.0.0.14: icmp_seq=11 ttl=64 time=3.5 ms
64 bytes from 10.0.0.14: icmp_seq=12 ttl=64 time=59.7 ms
64 bytes from 10.0.0.14: icmp_seq=13 ttl=64 time=3.5 ms
64 bytes from 10.0.0.14: icmp_seq=14 ttl=64 time=3.5 ms
64 bytes from 10.0.0.14: icmp_seq=15 ttl=64 time=4.8 ms
64 bytes from 10.0.0.14: icmp_seq=16 ttl=64 time=3.1 ms
64 bytes from 10.0.0.14: icmp_seq=17 ttl=64 time=3.1 ms
64 bytes from 10.0.0.14: icmp_seq=18 ttl=64 time=3.0 ms
64 bytes from 10.0.0.14: icmp_seq=19 ttl=64 time=3.1 ms
--- 10.0.0.14 ping statistics ---
20 packets transmitted, 19 packets received, 5% packet loss
round-trip min/avg/max = 3.0/9.9/59.7 ms
それでおしまい。
以下のチェックリストをご確認ください
1)最初に、インスタンスがインターネットから到達可能なサブネットで起動されているかどうかを確認する必要があります
そのために、インスタンスが起動したサブネットにインターネットゲートウェイが接続されているかどうかを確認します。AWSでのネットワークの詳細については、以下のリンクにアクセスしてください。
aws vpcのパブリックサブネットとプライベートサブネット
2)適切なセキュリティグループルールが追加されているかどうかを確認します。追加されていない場合は、インスタンスに接続されているセキュリティグループに以下のルールを追加します。セキュリティグループは、起動されるすべてのインスタンスに接続されているファイアウォールです。セキュリティグループには、トラフィックを許可する受信/送信ルールが含まれています/ out of the instance。デフォルトでは、すべてのセキュリティグループがインスタンスからのすべての送信トラフィックを許可し、インスタンスへの受信トラフィックは許可しません。トラフィックの詳細については、以下のリンクを確認してください。
タイプ:カスタムICMPV4
プロトコル:ICMP
Portrange:エコー要求
ソース:0.0.0.0/0
3)NACLと呼ばれるサブネットレベルのファイアウォールに十分なルールがあるかどうかを確認します.NACLはステートレスファイアウォールであり、インバウンドとアウトバウンドの両方のトラフィックを個別に指定する必要があります.NACLはサブネットレベルで適用され、サブネットの下のすべてのインスタンスが該当しますNACLルール。以下は、詳細についてのリンクです。
インバウンドルール。 送信ルール
タイプ:カスタムIPV4タイプ:カスタムIPV4
プロトコル:ICMPプロトコル:ICMP
ポートレンジ:ECHO REQUESTポートレンジ:ECHO REPLY
ソース:0.0.0.0/0デスティネーション:0.0.0.0/0
許可/拒否:許可許可/拒否:許可
4)IPTABLESなどのファイアウォールを確認し、pingのテストを無効にします。
EC2インスタンスのセキュリティグループに移動し、ICMPに対して0.0.0.0/0を許可する受信ルールを編集します。
それが動作します。
1.Go to EC2 Dashboard and click "Running Instances" on "Security Groups"
2.select the group of your instance which you need to add security.
3.click on the "Inbound" tab
4.Click "Edit" Button (It will open an popup window)
5.click "Add Rule"
6.Select the "Custom ICMP rule - IPv4" as Type
7.Enter the "0.0.0.0/0" as Source or your public IP
7.「保存」をクリックします
デフォルトでは、EC2はAWS Security Group(EC2およびVPCにあるサービス)によって保護されています。セキュリティグループは、デフォルトで、pingを含むすべてのICMP要求を禁止しています。それを許可するには:
Goto: AWS EC2 Instance Locate:セキュリティグループがそのインスタンスにバインドします(複数のセキュリティグループを持つことが可能です) チェック:プロトコル(ICMP)ポートの受信ルール(0-65535)存在しない場合は追加して許可できます指定したソースIPまたは別のセキュリティグループ。
pingを(どこからでも)プログラムでSDKを介して有効にする場合、魔法の数式は次のとおりです。
cidrIp: "0.0.0.0/0"
ipProtocol: "icmp"
toPort: -1
fromPort: 8
たとえば、Scalaでは(AWS Java SDK v2を使用)、次のように機能しIpPermission
てauthorizeSecurityGroupIngress
エンドポイントのを定義します。
val PingPermission = {
val range = IpRange.builder().cidrIp( "0.0.0.0/0" ).build()
IpPermission.builder().ipProtocol( "icmp" ).ipRanges( range ).toPort( -1 ).fromPort( 8 ).build()
}
(私はこれをEC2-Classicでのみ試しました。VPCで必要な下りルールがわかりません)
はい、ポートへのアクセスを開く必要があります。セキュリティグループを確認するhttp://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html
EC2インスタンスは、必要なアクセスを許可するセキュリティグループにアタッチする必要があります。
ルールを「カスタムICMP」ルールおよび「エコー応答」として設定すると、どこでもチャンプのように機能します。「エコー要求」は、pingに応答するための間違ったルールです。
さらに深い問題がありました。VPC、サブネット、適切なセキュリティグループを作成しましたが、インターネットゲートウェイを追加してサブネットに関連付けることを怠っていました。これは「Ca n't ping ec2」に対する最初のGoogleの結果なので、他の誰か(または将来私自身)に役立つと思われる場合に備えて、この情報をここに投稿します。
セキュリティグループで開き、VPCが正しい場合、内部ネットワークがそのIPをpingするか、ファイアウォールでpingパケットをブロックしている可能性があります。