답변:
새로운 EC2 보안 그룹 인바운드 규칙을 추가하십시오 .
ping
모두 를 허용하고 싶지 않습니다.
몇 년 늦었지만 희망적으로 이것은 다른 누군가를 도울 것입니다 ...
1) 먼저 EC2 인스턴스에 퍼블릭 IP가 있는지 확인하십시오. 경우 공공 DNS 또는 공공 IP (아래 원) 주소를 당신이 잘되어야합니다. 이 주소는 핑 주소입니다.
2) 다음으로 Amazon 네트워크 규칙이 에코 요청을 허용하는지 확인하십시오 . EC2 의 보안 그룹으로 이동하십시오 .
3) 다음으로 Windows 방화벽은 기본적으로 인바운드 에코 요청을 차단합니다. Windows 방화벽 예외를 작성하여 에코 요청을 허용하십시오.
4) 완료! 바라건대 이제 서버를 ping 할 수 있어야합니다.
EC2 인스턴스가 속한 보안 그룹 을 편집하고 액세스를 허용해야합니다 (또는 새 인스턴스를 생성하여 인스턴스에 추가).
기본적으로 모든 것이 거부됩니다. 보안 그룹에 추가해야하는 예외는 인터넷에 제공해야하는 서비스에 따라 다릅니다.
웹 서버 인 경우 포트에 80
대한 액세스를 허용해야합니다 0.0.0.0/0
( 즉, 모든 IP 주소 ).
인스턴스 핑을 허용하려면 ICMP 트래픽을 활성화해야합니다.
AWS 웹 콘솔은 관련 드롭 다운 목록에서 가장 일반적으로 사용되는 옵션을 제공합니다.
All ICMP
지정된 보안 그룹을 사용하여 시스템에 대한 트래픽을 활성화 하여 처리했습니다.
보안 그룹의 커스텀 ICMP 규칙은 나에게 필요한 것이 아닙니다. 그러나 다음 규칙이 적용됩니다.
Type: All ICMP
Protocol: TCP
Port range: 0 - 65535
Source: Anywhere - 0.0.0.0/0
이 작업을 수행 한 후 다른 인스턴스를 핑할 수 있습니다. 다음과 같이 보일 것입니다 :
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의 네트워킹에 대한 자세한 내용은 아래 링크를 참조하십시오.
2) 인스턴스에 연결된 보안 그룹에 아래 규칙을 추가하십시오. 보안 그룹은 시작된 모든 인스턴스에 방화벽이 연결되어 있습니다. 보안 그룹에는 트래픽을 허용하는 인바운드 / 아웃 바운드 규칙이 포함되어 있습니다. / out of the instance. 기본적으로 모든 보안 그룹은 인스턴스에서 인바운드 트래픽이 아닌 인스턴스로의 모든 아웃 바운드 트래픽을 허용합니다. 트래픽에 대한 자세한 내용은 아래 링크를 확인하십시오.
유형 : 주문 ICMPV4
프로토콜 : ICMP
Portrange : 에코 요청
출처 : 0.0.0.0/0
3) NACL이라는 서브넷 수준 방화벽에 규칙이 충분한 지 확인 NACL은 상태 비 저장 방화벽으로 인바운드 및 아웃 바운드 트래픽을 별도로 지정해야합니다 .NACL은 서브넷 수준에서 적용되며 서브넷 아래의 모든 인스턴스는 NACL 규칙. 아래에 자세한 정보가있는 링크가 있습니다.
인바운드 규칙 . 아웃 바운드 규칙
유형 : 사용자 지정 IPV4 유형 : 사용자 지정 IPV4
프로토콜 : ICMP 프로토콜 : ICMP
포트 범위 : 에코 요청 포트 범위 : 에코 요청
출처 : 0.0.0.0/0 목적지 : 0.0.0.0/0
허용 / 거부 : 허용 허용 / 거부 : 허용
4) IPTABLES와 같은 방화벽을 확인하고 핑 테스트에 사용하지 마십시오.
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 보안 그룹 (EC2 및 VPC에있는 서비스)에 의해 보호됩니다. 보안 그룹은 기본적으로 핑을 포함하는 모든 ICMP 요청을 허용하지 않습니다. 그것을 허용하려면 :
이동 : AWS EC2 인스턴스 찾기 : 보안 그룹이 해당 인스턴스에 바인딩 됨 (여러 보안 그룹을 가질 수 있음) 확인 : 프로토콜에 대한 인바운드 규칙 (ICMP) 포트 (0-65535)없는 경우 추가하고 허용 할 수 있습니다. 지정된 소스 IP 또는 다른 보안 그룹
SDK를 통해 프로그래밍 방식으로 (어디서나) 핑을 활성화하려면 마술 공식은 다음과 같습니다.
cidrIp: "0.0.0.0/0"
ipProtocol: "icmp"
toPort: -1
fromPort: 8
예를 들어, AWS Java SDK v2를 사용하는 Scala에서 다음은 엔드 포인트 를 정의하기 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에서 어떤 송신 규칙이 필요한지 모르겠습니다)
보안 그룹을 사용하면 인스턴스에 도달 할 수있는 트래픽 종류를 포함하여 인스턴스에 대한 트래픽을 제어 할 수 있습니다.
1. Check the Security Groups (Enabled the PORTS to be OPEN)
2. Check the correct VPC
3. Attached the correct Subnet
4. AWS EC2 to be in Public Subnet
5. Enable Internet Gateway
AWS EC2에서 포트를 열고 것은 AWS의 offical 한이 링크 확인 링크를
예, 포트에 대한 액세스 권한을 열어야합니다. 보안 그룹을 참조하십시오 http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html
EC2 인스턴스는 필요한 액세스를 허용하는 보안 그룹에 연결해야합니다.
규칙을 "Custom ICMP"규칙 및 "echo reply"로 설정하면 어디서나 챔피언처럼 작동합니다. "에코 요청"은 핑에 대한 잘못된 규칙입니다.
더 깊은 문제가있었습니다. VPC, 서브넷 및 적절한 보안 그룹을 만들었지 만 인터넷 게이트웨이를 추가하여 서브넷과 연결하지 않았습니다. 이것이 "ec2 ping을 할 수 없습니다"에 대한 첫 번째 Google 검색 결과이므로, 다른 사람 (또는 미래에 본인)에게 유용 할 경우를 대비하여 여기에이 정보를 게시합니다.
-1이 나에게 분명하지 않았기 때문에 보안 그룹에 대한 테라 폼 특정 지침.
resource "aws_security_group" "Ping" {
vpc_id = "${aws_vpc.MyVPC.id}"
ingress {
from_port = -1
to_port = -1
protocol = "icmp"
cidr_blocks = ["0.0.0.0/0"]
ipv6_cidr_blocks = ["::/0"]
}
}
보안 그룹에서 열었고 VPC가 올바른 경우 내부 네트워크가 방화벽에서 해당 IP의 ping 또는 ping 패킷을 차단하고있을 수 있습니다.