ไม่สามารถ ping อินสแตนซ์ AWS EC2


229

ฉันมีอินสแตนซ์ EC2 ทำงานใน AWS เมื่อฉันพยายาม ping จากกล่องท้องถิ่นของฉันมันไม่สามารถใช้ได้

ฉันจะทำให้ pingable อินสแตนซ์ได้อย่างไร


ฉันไม่ ping ec2 ของอินสแตนซ์ของฉันเพราะฉันไม่ต้องการเปิดใช้งาน ICMP ในกลุ่มความปลอดภัยของฉันเพียงเพื่อ ping แทนฉัน telnet เปิดพอร์ต
Aderemi Dayo

คำตอบ:


280

เพิ่มกฎความปลอดภัยขาเข้ากลุ่ม EC2 ใหม่:

  • ประเภท: กฎ ICMP ที่กำหนดเอง
  • โปรโตคอล: คำขอ Echo
  • พอร์ต: N / A
  • ที่มา: ตัวเลือกของคุณ (ฉันจะเลือกที่ใดก็ได้เพื่อให้สามารถ ping จากเครื่องใดก็ได้)

3
ขอบคุณฉันชอบสิ่งนี้ ผมแค่อยากจะช่วยให้pingไม่ได้ทั้งหมด
Chu-Siang Lai

ฉันต้องการ ICMPv6 ด้วยหรือไม่
Franklin Yu

ลองได้เช่นกัน แต่ ICMP เพียงพอสำหรับฉัน
Rakib

1
ฉันทำทุกที่ แต่มันจะแปลงเป็น @SyedRakibAlHasan เองโดยอัตโนมัติ
alper

25
มันง่ายที่จะเข้าใจผิดว่า "Echo Reply" สำหรับ "Echo Request" ฉันสับสนไปครู่หนึ่ง
Andy

100

ไม่กี่ปีที่ผ่านมา แต่หวังว่าจะช่วยคนอื่น ...

1) อันดับแรกตรวจสอบให้แน่ใจว่าอินสแตนซ์ EC2 มี IP สาธารณะ หากมีPublic DNSหรือที่อยู่IP สาธารณะ (วงกลมด้านล่าง) คุณควรจะดี นี่จะเป็นที่อยู่ที่คุณส่ง Ping ที่อยู่ DNS สาธารณะของ AWS

2) ถัดไปให้แน่ใจว่าเครือข่ายกฎ Amazon อนุญาตให้จองก้อง ไปที่กลุ่มรักษาความปลอดภัยสำหรับ EC2

  • คลิกขวาเลือกกฎขาเข้า
  • ตอบ: เลือกเพิ่มกฎ
  • B: เลือกกฎ ICMP ที่กำหนดเอง - IPv4
  • C: เลือกคำขอ Echo
  • D: เลือกที่ใดก็ได้หรือIP ของฉัน
  • E: เลือกบันทึก

เพิ่มกฎ ICMP ของกลุ่มความปลอดภัยเพื่ออนุญาตให้ Pings และ Echos

3) ถัดไปไฟร์วอลล์ Windows บล็อกคำขอ Echo ขาเข้าตามค่าเริ่มต้น อนุญาตคำขอ Echo โดยสร้างข้อยกเว้นไฟร์วอลล์ windows ...

  • ไปที่Startและพิมพ์Windows Firewall ด้วย Advanced Security
  • เลือกกฎขาเข้า

เพิ่ม Windows Server ICMP Rule เพื่ออนุญาตให้ Pings และ Echos

4) เสร็จแล้ว! หวังว่าคุณน่าจะสามารถ ping เซิร์ฟเวอร์ของคุณได้แล้ว


1
คุณบันทึกวันของฉัน !! ขอบคุณมาก
Yugandhar Pathi

3
คำตอบที่ดีที่สุดโดยไกล ถี่ถ้วนมาก
Brian Webster

2
Windows Firewall เป็นผู้ร้ายและไม่ได้กล่าวถึงคำตอบอื่น ๆ
crokusek

ฉันสามารถ ping ตอนนี้ แต่คุณรู้หรือไม่ว่าฉันจะอนุญาตให้แอป node ของฉันฟังบนพอร์ตสามารถเข้าถึงได้หรือไม่
FluffyBeing

@zeion - ฉันไม่เคยใช้ AWS มาระยะหนึ่ง (ฉันอยู่ในช่วงต้นปี 2017) ดังนั้นฉันจะไม่สามารถช่วยเหลือได้มากนัก สิ่งเดียวที่ฉันนึกได้ (ที่ฉันแน่ใจว่าคุณได้ลองไปแล้ว) คือการใช้ไอเท็มด้านบน แต่สำหรับพอร์ตที่แอพของคุณต้องการ สำหรับส่วนไฟร์วอลล์ของ windows ฉันคิดว่าคุณสามารถสร้างกฎใหม่ได้เนื่องจากกฎที่สร้างไว้ล่วงหน้าจะไม่ปรากฏในรายการ
Sunsetquest

84

คุณต้องแก้ไขกลุ่มความปลอดภัยที่เป็นอินสแตนซ์ EC2 ของคุณและอนุญาตการเข้าถึง (หรือสร้างใหม่หรือเพิ่มอินสแตนซ์นั้น)

โดยค่าเริ่มต้นทุกอย่างถูกปฏิเสธ ข้อยกเว้นที่คุณต้องเพิ่มในกลุ่มความปลอดภัยขึ้นอยู่กับบริการที่คุณต้องการให้มีในอินเทอร์เน็ต

หากเป็นเว็บเซิร์ฟเวอร์คุณจะต้องอนุญาตให้เข้าถึงพอร์ต80สำหรับ0.0.0.0/0( ซึ่งหมายถึงที่อยู่ IP ใด ๆ )

ในการอนุญาตให้ส่ง Ping คุณต้องเปิดใช้งานการรับส่งข้อมูล ICMP

AWS Web Console มีตัวเลือกที่ใช้บ่อยที่สุดในรายการแบบหล่นลงที่เกี่ยวข้อง


7
เปิดใช้งานทราฟAll ICMPฟิกไปยังเครื่องโดยใช้กลุ่มรักษาความปลอดภัยที่ระบุทำงานได้ดีสำหรับฉัน
Jonathan Williams

เช่นเดียวกับการสร้างและแก้ไขกลุ่มความปลอดภัยนั้นจะต้องเกี่ยวข้องกับอินสแตนซ์ จากนั้นจะมีผล
MikeW

กลุ่มความปลอดภัยช่วยให้คุณสามารถควบคุมปริมาณข้อมูลในอินสแตนซ์ของคุณรวมถึงประเภทของปริมาณข้อมูลที่สามารถเข้าถึงอินสแตนซ์ของคุณได้ `` `1. ตรวจสอบกลุ่มความปลอดภัย (เปิดใช้งานพอร์ตเพื่อเปิดใช้งาน) 2. ตรวจสอบ VPC ที่ถูกต้อง 3. เชื่อมต่อ Subnet ที่ถูกต้อง 4. AWS EC2 อยู่ใน Public Subnet 5. เปิดใช้งาน Internet Gateway` `` เปิดพอร์ตใน AWS EC2 ตรวจสอบลิงก์นี้อย่างเป็นทางการ AWS [ลิงค์] [1] คำตอบถูกโพสต์โดย Tapan Nayan Banker | Tapan Banker www.tapanbanker.com
Tapan Banker

40

กฎ 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
มีปัญหาด้านความปลอดภัยที่เกี่ยวข้องกับสิ่งนี้หรือไม่?
Victor Anuebunwa

บางทีคุณควรระบุ IP
Laura Liparulo

@avonnadozie ใช่เราไม่ควรเปิดพอร์ต ICMP ทั้งหมด
Kartik Narayana Maringanti

1
"พอร์ต ICMP ทั้งหมด" หรือไม่ นั่นหมายความว่าอย่างไร? ICMP ไม่ใช่ TCP หรือ UDP และไม่มีพอร์ต
David Ongaro

32
  1. ไปที่ EC2 Dashboard แล้วคลิก "Running Instances" บน "Security Groups" เลือกกลุ่มของอินสแตนซ์ที่คุณต้องการเพิ่มความปลอดภัย
  2. คลิกที่แท็บ "ขาเข้า"
  3. คลิกปุ่ม "แก้ไข" (มันจะเปิดหน้าต่างป๊อปอัพ)
  4. คลิก "เพิ่มกฎ"
  5. เลือก "กฎ ICMP ที่กำหนดเอง - IPv4" เป็นประเภท
  6. เลือก "คำร้องขอ Echo" และ "Echo Response" เป็นโปรโตคอล (ช่วงพอร์ตโดยค่าเริ่มต้นแสดงเป็น "N / A)
  7. ป้อน "0.0.0.0/0" เป็นแหล่งที่มา
  8. คลิก "บันทึก"

12

โปรดทำตามรายการตรวจสอบด้านล่าง

1) คุณต้องตรวจสอบก่อนว่ามีการเปิดตัวอินสแตนซ์ในเครือข่ายย่อยที่สามารถเข้าถึงได้จากอินเทอร์เน็ตหรือไม่

สำหรับการตรวจสอบว่าอินสแตนซ์ที่เปิดตัว subnet นั้นมีอินเทอร์เน็ตเกตเวย์เชื่อมต่ออยู่หรือไม่สำหรับรายละเอียดของระบบเครือข่ายใน AWS โปรดไปที่ลิงค์ด้านล่าง

เครือข่ายสาธารณะและส่วนตัวใน aws vpc

2) ตรวจสอบว่าคุณมีการเพิ่มกฎกลุ่มความปลอดภัยที่เหมาะสมหรือไม่หากเพิ่มกฎด้านล่างในกลุ่มความปลอดภัยที่แนบกับอินสแตนซ์กลุ่มความปลอดภัยคือไฟร์วอลล์ที่เชื่อมต่อกับทุกอินสแตนซ์ที่เปิดตัวกลุ่มความปลอดภัยประกอบด้วยกฎขาเข้า / ขาออก / out ของ instance.by เริ่มต้นทุกกลุ่มความปลอดภัยอนุญาตให้ทราฟฟิกขาออกทั้งหมดจากอินสแตนซ์และไม่มีทราฟฟิกขาเข้าไปยังอินสแตนซ์ตรวจสอบลิงค์ด้านล่างสำหรับรายละเอียดเพิ่มเติมของทราฟฟิก

เอกสารกลุ่มความปลอดภัย

ประเภท: ICMPV4 ที่กำหนดเอง

โปรโตคอล: ICMP

Portrange: Echo Request

ที่มา: 0.0.0.0/0

สกรีนช็อตจาก aws console

3) ตรวจสอบว่าคุณมีกฎเพียงพอในไฟร์วอลล์ระดับเครือข่ายย่อยที่เรียกว่า NACL หรือไม่ NACL เป็นไฟร์วอลล์ไร้สัญชาติที่ต้องการการรับส่งข้อมูลทั้งขาเข้าและขาออกแยกต่างหาก NACL ถูกนำไปใช้ที่ระดับเครือข่ายย่อย กฎ NACL ด้านล่างคือลิงก์ที่จะมีรายละเอียดเพิ่มเติม

เอกสาร NACL

กฎขาเข้า กฎขาออก

ประเภท: IPV4 ที่กำหนดเองประเภท: IPV4 ที่กำหนดเอง

โปรโตคอล: ICMP โปรโตคอล: ICMP

Portrange: ECHO REQUEST Portrange: ECHO REPLY

ที่มา: 0.0.0.0/0 ปลายทาง: 0.0.0.0/0

อนุญาต / ปฏิเสธ: อนุญาตอนุญาต / ปฏิเสธ: อนุญาต

ภาพหน้าจอกฎขาเข้า

ภาพหน้าจอกฎขาออก

4) ตรวจสอบไฟร์วอลล์ใด ๆ เช่น IPTABLES และปิดการใช้งานการทดสอบ ping


วิธีการเขียนคำตอบ เพิ่มรายละเอียดเพิ่มเติมเพื่อพิสูจน์คำตอบของคุณ และใช้เครื่องมือการจัดรูปแบบ
Morse

ขอบคุณ prateek สำหรับการย้อนกลับฉันได้ทำให้ชัดเจนยิ่งขึ้น
Haneef Mohammed

โปรดเพิ่มรูปภาพเป็นภาพและไม่เป็นไฮเปอร์ลิงก์ แก้ไขและแปลงภาพหน้าจอเป็นภาพ
มอร์ส

ทำไมเรื่องนี้ถึงถูกลดระดับลง? ดูเหมือนว่าตกลงและเข้าท่าทั้งหมด
Witold Kaczurba

ขอบคุณสำหรับความกังวลของคุณดูเหมือนว่าจะมีปัญหาการจัดรูปแบบซึ่งทำให้การโหวตฉันได้ทำการแก้ไขแล้ว
Haneef Mohammed


4

ผู้ที่ยังใหม่ต่อ aws ec2 และต้องการเข้าถึงอินสแตนซ์จากSSH, Broswer, Ping from systemนั้นด้านล่างเป็นกฎขาเข้าสำหรับสิ่งเหล่านี้: -

ป้อนคำอธิบายรูปภาพที่นี่


4

ไปที่กลุ่มความปลอดภัยของอินสแตนซ์ EC2 และแก้ไขกฎขาเข้าอนุญาต 0.0.0.0/0 สำหรับ ICMP

มันจะทำงาน.


3
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. คลิกที่ "บันทึก"


1

โดยค่าเริ่มต้น EC2 นั้นปลอดภัยโดย AWS Security Group (บริการที่พบใน EC2 และ VPC) กลุ่มความปลอดภัยโดยค่าเริ่มต้นจะไม่อนุญาตคำขอ ICMP ใด ๆ ที่รวมถึงการ ping วิธีอนุญาต:

ไปที่: AWS EC2 อินสแตนซ์ ค้นหา:กลุ่มความปลอดภัยเชื่อมโยงกับอินสแตนซ์ (เป็นไปได้ที่จะมีกลุ่มความปลอดภัยหลายกลุ่ม) ตรวจสอบ:กฎขาเข้าสำหรับพอร์ตโปรโตคอล (ICMP) (0 - 65535) หากไม่มีอยู่คุณสามารถเพิ่มได้ IP ต้นทางที่คุณระบุหรือกลุ่มความปลอดภัยอื่น


1

หากคุณต้องการเปิดใช้งานการ ping (จากที่ใดก็ได้) โดยทางโปรแกรมผ่าน SDK สูตรวิเศษคือ:

cidrIp:     "0.0.0.0/0"
ipProtocol: "icmp"
toPort:     -1
fromPort:   8

ยกตัวอย่างเช่นในสกาล่า (โดยใช้ v2 AWS Java SDK) ผลงานต่อไปนี้เพื่อกำหนด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 เท่านั้นฉันไม่รู้ว่ากฎ egress ใดที่อาจจำเป็นภายใต้ VPC)


จริง ๆ แล้วฉันตั้งค่านี้เป็นกฎขาออก (ออกไปข้างนอก) ในกลุ่มความปลอดภัยของฉันโดยใช้ terraform และมันทำงานเหมือน
เครื่องราง

1

กลุ่มความปลอดภัยช่วยให้คุณสามารถควบคุมปริมาณข้อมูลในอินสแตนซ์ของคุณรวมถึงประเภทของปริมาณข้อมูลที่สามารถเข้าถึงอินสแตนซ์ของคุณได้

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


0

ใช่คุณต้องเปิดการเข้าถึงพอร์ต ดูที่กลุ่มความปลอดภัยhttp://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html

อินสแตนซ์ EC2 ของคุณต้องเชื่อมต่อกับกลุ่มความปลอดภัยที่อนุญาตการเข้าถึงที่คุณต้องการ


0

หากคุณตั้งค่ากฎเป็น "Custom ICMP" และ "echo reply" กับทุกที่มันจะทำงานเหมือนแชมป์ "คำขอ echo" เป็นกฎที่ไม่ถูกต้องสำหรับการตอบรับ Ping


14
Echo ตอบกลับไม่ทำงานสำหรับฉัน แต่คำขอ Echoทำ
storm_m2138

0

ฉันมีปัญหาที่ลึกกว่านี้ - ฉันได้สร้าง VPC, ซับเน็ตและกลุ่มความปลอดภัยที่เหมาะสม แต่ไม่สนใจที่จะเพิ่มเกตเวย์อินเทอร์เน็ตและเชื่อมโยงกับซับเน็ตของฉัน เนื่องจากนี่คือผลการค้นหา Google ครั้งแรกของฉันสำหรับ "Caning ping ec2" ฉันจึงโพสต์ข้อมูลนี้ที่นี่ในกรณีที่พิสูจน์ได้ว่ามีประโยชน์กับคนอื่น (หรือตัวฉันเองในอนาคต)


0

คำแนะนำเฉพาะterraformสำหรับกลุ่มความปลอดภัยเนื่องจาก -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"]
  }
}

0

ฉันมีปัญหาเดียวกันในการเชื่อมต่อจากเซิร์ฟเวอร์ linux ไปยัง EC2 คุณมีสองสิ่งที่ต้องแน่ใจว่า "ALL ICMP" ถูกเพิ่มจาก EC2 ดังที่แสดงด้านบนและไม่สามารถใช้งานได้เพียงอย่างเดียวคุณต้องอัปเดตเวอร์ชันล่าสุด 2.4 มันไม่ทำงานกับเวอร์ชันก่อนหน้าของฉัน 2.2


0

คุณต้องเปิดพอร์ตความปลอดภัยต่อไปนี้ในกลุ่มความปลอดภัย แต่ละกฎมีไว้เพื่อจุดประสงค์ที่แตกต่างกันดังที่แสดงด้านล่าง

ป้อนคำอธิบายรูปภาพที่นี่

  1. ICMP ทั้งหมดสำหรับการปิง

  2. HTTP สำหรับการเข้าถึง URL บนพอร์ต HTTP

  3. HTTPS สำหรับการเข้าถึง URL บนพอร์ต HTTP ที่ปลอดภัย

ตามความต้องการของคุณคุณสามารถเปลี่ยนแหล่งที่มา


0

อาจเป็นเพราะเครือข่ายภายในของคุณกำลังปิดกั้น IP นั้นไปยัง ping หรือ block ping packet ในไฟร์วอลล์ของคุณหากคุณเปิดในกลุ่มความปลอดภัยและ VPC นั้นถูกต้อง


-1

เมื่อส่ง Ping สองระบบโดยค่าเริ่มต้น SSH จะถูกเปิดใช้งาน (ถ้าคุณเชื่อมต่อผ่าน putty หรือเทอร์มินัล) เพื่ออนุญาตให้ ping ฉันเพิ่มกลุ่มความปลอดภัยสำหรับแต่ละอินสแตนซ์ (ขาเข้า)

ป้อนคำอธิบายรูปภาพที่นี่


6
กฎข้อที่สองของคุณ "การเข้าชมทั้งหมด" จาก "ทุกที่" ไม่ใช่ความคิดที่ดี
Devin

-3

เมื่อเข้าถึงพอร์ตใหม่ในอินสแตนซ์ ec2 คุณได้เพิ่มสถานที่ 2 แห่ง 1. พอร์ตความปลอดภัยขาเข้าของกลุ่มความปลอดภัย 2. กฎการตั้งค่าไฟร์วอลล์ขาเข้า


-3
  1. ตรวจสอบให้แน่ใจว่าคุณใช้ไอพีสาธารณะของอินสแตนซ์ของคุณ aw2 เพื่อ ping

  2. แก้ไขกลุ่มความลับที่แนบมากับอินสแตนซ์ EC2 ของคุณและเพิ่มกฎขาเข้าสำหรับโปรโตคอล ICMP

  3. ลองส่ง Ping หากไม่สามารถแก้ไขได้ให้เพิ่มกฎขาออกสำหรับ ICMP ในกลุ่มความปลอดภัย


-4

ฉันอยากจะพูดถึงปัญหาที่เกิดจาก ISP ที่หายาก บางครั้งการติดตามเกิดขึ้นกับฉันด้วย BSNL มันเป็นหนึ่งในปัญหาแปลก ๆ ที่ใช้เวลาหลายชั่วโมงในชีวิตประจำวันของคุณ ในกรณีเช่นนี้อาจเกิดปัญหากับ ISP หรือเปลี่ยน ISP

  1. สามารถเข้าถึงตัวอย่าง Amazon ได้จากเบราว์เซอร์ (พอร์ตที่เปิดอยู่ทั้งหมด)
  2. เดียวกันไม่สามารถ ping จากคอนโซลได้
  3. ssh / telnet ไม่ทำงานเช่นกัน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.