Не вдається пінг-екземпляр AWS EC2


229

У мене є екземпляр EC2, який працює в AWS. Коли я намагаюся пінг з моєї локальної скриньки, вона недоступна.

Як я можу зробити екземпляр pingable?


Я не пінг своїх ек2-екземплярів, тому що я не хочу вмикати ICMP у своїй групі безпеки просто заради pinging, а не відкриваю порти telnet.
Адеремі Дайо

Відповіді:


280

Додайте нове вхідне правило групи безпеки EC2 :

  • Тип: Спеціальне правило ICMP
  • Протокол: Ехо-запит
  • Порт: Не застосовується
  • Джерело: ваш вибір (я вибрав би де завгодно, щоб мати можливість пінг з будь-якої машини)

3
Дякую, мені це подобається. Я просто хочу дозволити ping, не всі.
Чу-Сян Лай

Чи потрібен мені і ICMPv6?
Франклін Ю

Можна спробувати і це. Але мені вистачило ICMP
Ракіб

1
Я роблю в будь-якому місці, але він автоматично перетворює його на звичай @SyedRakibAlHasan
alper

25
Легко помилитися "Echo Reply" за "Echo Request", я на якусь хвилину збентежився.
Енді

100

Кілька років пізно, але сподіваємось, це допоможе комусь іншому ...

1) Спочатку переконайтеся, що екземпляр EC2 має загальнодоступний IP. Якщо є загальнодоступна DNS або загальнодоступна IP- адреса (обведена нижче), ви повинні бути хорошими. Це буде адреса, за якою ви пінг. Загальна DNS-адреса AWS

2) Далі переконайтеся, що правила мережі Amazon дозволяють Echo Requests . Перейдіть до групи безпеки для EC2.

  • клацніть правою кнопкою миші, виберіть вхідні правила
  • A: виберіть Додати правило
  • B: Виберіть спеціальне правило ICMP - IPv4
  • C: Виберіть Echo Request
  • D: Виберіть будь- де або " Мій IP"
  • E: Виберіть Зберегти

Додайте правило ICMP групи безпеки, щоб дозволити Pings and Echos

3) Далі, брандмауер Windows блокує вхідні запити Echo за замовчуванням. Дозволити запити Echo, створивши виняток брандмауера Windows ...

  • Перейдіть до початку та введіть брандмауер Windows із розширеною безпекою
  • Виберіть вхідні правила

Додайте правило ICMP для Windows Server, щоб дозволити Pings і Echos

4) Готово! Сподіваємось, тепер ви зможете пінг-сервер.


1
Ти врятував мій день !! Велике спасибі
Югандхар Паті

3
Найкраща відповідь на сьогоднішній день. Дуже ретельно.
Брайан Вебстер

2
Винуватцем був брандмауер Windows, який досі не згадується іншими відповідями.
crokusek

Я можу пінг зараз, але чи знаєте ви, як я можу дозволити доступ до прослуховування мого вузла через порт?
FluffyBeing

@zeion - я не використовував AWS деякий час (я був на пробі на початку 2017 року), тому мені не вдасться багато допомогти. Єдине, про що я можу подумати (я впевнений, що ви вже намагалися) - це використовувати вищезазначені елементи, але для порту, необхідного вашій програмі. Що стосується частини брандмауера Windows, я думаю, ви можете створити нове правило, оскільки попередньо побудоване правило, ймовірно, не буде вказане.
Захід сонця

84

Ви повинні відредагувати групу безпеки, до якої належить ваш екземпляр EC2, і дозволити доступ (або, як альтернатива, створити новий і додати до нього екземпляр).

За замовчуванням все відмовлено. Виняток, який потрібно додати до групи безпеки, залежить від послуги, яку потрібно зробити доступною для Інтернету.

Якщо це веб-сервер, вам потрібно дозволити доступ до порту 80для 0.0.0.0/0( це означає будь-яку IP-адресу ).

Щоб дозволити pinging екземпляр, вам потрібно включити трафік ICMP.

Веб-консоль AWS пропонує деякі найбільш часто використовувані параметри у відповідному спадному списку.


7
Увімкнути All ICMPтрафік до машин за допомогою зазначеної групи безпеки працював для мене.
Джонатан Вільямс

Окрім створення та редагування групи безпеки, її потім потрібно асоціювати з екземпляром. Тільки тоді воно набере чинності.
MikeW

Групи безпеки дозволяють вам контролювати трафік до вашого примірника, включаючи тип трафіку, який може охопити ваш примірник. `` `1. Перевірте групи безпеки (увімкнено відкриття PORTS) 2. перевірити правильність VPC 3. приєднано правильну підмережу 4. AWS EC2 бути в загальнодоступній підмережі 5. Увімкнути Інтернет-шлюз` `` Відкрити порти в AWS EC2 перевірте це посилання офіційне AWS [посилання] [1] Відповідь розміщено Tapan Nayan Banker | Tapan
Banker

40

Для мене звичайне правило 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
Чи не пов'язано з цим проблеми безпеки?
Віктор Анубунва

напевно, вам слід вказати IP-адреси
Лаура Ліпаруло

@avonnadozie, так, нам не слід відкривати всі порти ICMP.
Картик Нараяна Марінганті

1
"всі порти ICMP"? Що це означає? ICMP не є ні TCP, ні UDP і не має портів.
Девід Онгаро

32
  1. Перейдіть на інформаційну панель EC2 і натисніть "Запуск екземплярів" на "Групи безпеки", виберіть групу вашого примірника, якій потрібно додати безпеку.
  2. натисніть на вкладку "Вхідні"
  3. Натисніть кнопку "Редагувати" (це відкриє спливаюче вікно)
  4. натисніть "Додати правило"
  5. Виберіть "Тип користувальницького правила ICMP - IPv4"
  6. Виберіть "Прохання ехо" та "Ехо-відповідь" як протокол (Діапазон портів за замовчуванням показується як "Немає)
  7. Введіть "0.0.0.0/0" як Джерело
  8. Натисніть "Зберегти"

12

Будь ласка, перегляньте наведені нижче списки

1) Ви повинні спочатку перевірити, чи запущений примірник в підмережі, де він доступний з Інтернету

Для цього перевірте, чи є в запущеній примірнику підмережі приєднаний Інтернет-шлюз. Докладніше про мережу в AWS перейдіть за посиланням нижче.

публічні та приватні підмережі в aws vpc

2) Перевірте, чи додані правильні правила групи безпеки, якщо ніДодайте наведене нижче правило в групі безпеки, приєднаному до інстанції. Група безпеки - це брандмауер, який додається до кожного запущеного примірника. / out of instance.by за замовчуванням кожна група безпеки дозволяє весь вихідний трафік з екземпляра, а також не вхідний трафік до інстанції.

документація групи безпеки

Тип: користувацький ICMPV4

Протокол: ICMP

Портранж: Ехо-запит

Джерело: 0.0.0.0/0

скріншот із консолі aws

3) Перевірте, чи є у вас достатньо правил у брандмауері рівня підмережі під назвою NACL.ANACL - це брандмауер без стану, який потребує окремо вказаного вхідного та вихідного трафіку. NACL застосовується на рівні підмережі. правила NACL. Нижче наведено посилання, в якому буде детальніше про нього.

Документація NACL

Правила введення . Вихідні правила

Тип: Спеціальний тип IPV4: Спеціальний IPV4

Протокол: протокол ICMP: ICMP

Портранж: ECHO ЗАЯВКА Портрансляція: ECHO ЗАВДАННЯ

Джерело: 0.0.0.0/0 Місце призначення: 0.0.0.0/0

Дозволити / Заборонити: Дозволити Дозволити / Заборонити: Дозволити

правило вхідного екрана

Правило вихідного екрана

4) перевірити будь-які брандмауери типу IPTABLES та disble для тестування пінгу.


Як написати відповідь . Додайте більше деталей, щоб обґрунтувати свою відповідь. і використовувати інструменти форматування
Морзе

Спасибі prateek за зворотній зв'язок. Я зробив це більш зрозумілим.
Ханеф Мохаммед

Будь ласка, додайте зображення як зображення, а не як гіперпосилання. редагування та перетворення скріншотів у зображення
Морзе

Чому це було знято? Здається, все гаразд і має сенс
Вітольд Качурба

Вітольд, дякую за вашу занепокоєння. Здається, виникла проблема із форматуванням, яка зробила зворотний зв'язок.
Ханеф Мохаммед


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 (послуга, знайдена в EC2 та VPC). Група безпеки за замовчуванням забороняє будь-який запит ICMP, що включає в себе ping. Щоб дозволити це:

Перейти: Знайти екземпляр AWS EC2 : Група безпеки прив'язується до цього примірника (Можна мати кілька груп безпеки) Перевірка: Правила вхідного порту протоколу (ICMP) (0 - 65535), якщо його немає, ви можете додати його та дозволити ваш вказаний IP-код або інша група безпеки.


1

Якщо ви хочете програмно ввімкнути пінг (з будь-якого місця), через 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)


я насправді встановив це як вихідне (вихідне) правило в моїй групі безпеки за допомогою тераформи, і це спрацювало як принадність
str8up7od

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

Якщо встановити правила як правило "Спеціальний ICMP" та "Ехо відповідь" з будь-якого місця, воно буде працювати, як шампіньон. "Запит ехо" - неправильне правило для відповіді на пінг.


14
Echo відповідь не працювала для мене, але Echo запит зробив.
storm_m2138

0

У мене була глибша проблема - я створив VPC, підмережу та відповідну групу безпеки, але знехтував додати Інтернет-шлюз і пов’язати його зі своєю підмережею. Оскільки це мій перший результат Google для програми "Can't ping ec2", я публікую цю інформацію тут, якщо вона виявиться корисною для когось іншого (або для мене в майбутньому).


0

терраформіровать інструкції , специфічні для групи безпеки , тому що -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, у вас є два переконання в тому, що "ВСІ ICMP" додано з EC2, як показано вище, і що поодинці не буде працювати, вам доведеться оновити Ansible до новітньої версії 2.4, він не працював з моєю попередньою версією 2.2.


0

Вам слід відкрити наступний порт безпеки в групі безпеки. Кожне правило призначене для різних цілей, як показано нижче.

введіть тут опис зображення

  1. ВСІ ICMP для ping.

  2. HTTP для доступу до URL на HTTP-порту.

  3. HTTPS для доступу до URL на захищеному HTTP-порту.

Відповідно до вашої вимоги ви можете змінити ДЖЕРЕЛ


0

можливо, ваша внутрішня мережа блокує цей IP для ping або заблокований пакет ping у вашому брандмауері, якщо ви відкрили групу безпеки і VPC є правильним.


-1

Під час пінг-налаштування двох систем SSH за замовчуванням увімкнено (якщо ви підключилися через шпаклівку або термінал.) Щоб дозволити ping, я додав групу безпеки для кожного екземпляра (вхідний).

введіть тут опис зображення


6
Ваше друге правило - "Весь трафік" від "Anywhere" - це не дуже гарна ідея.
Девін

-3

Під час доступу до нових портів в екземплярі ec2. Ви додали у двох місцях. 1. Вхідні порти групи безпеки. 2. Вхідні правила налаштування брандмауера.


-3
  1. Переконайтеся, що ви використовуєте Public IP для вас, наприклад, екземпляр ec2 для ping.

  2. відредагуйте групу безпеки, яка приєднана до вашого екземпляра EC2, і додайте вхідне правило для протоколу ICMP.

  3. спробуйте pinging, якщо це не виправлено, тоді додайте вихідне правило для ICMP у групі безпеки.


-4

Я хотів би згадати деякі рідкісні проблеми, викликані провайдером. Іноді трапляється зі мною BSNL. це одна з тих страшних проблем, яка займає години у вашому повсякденному житті. У такому випадку можна порушити проблему з провайдером або змінити провайдера.

  1. До екземпляра Amazon можна отримати доступ через браузер (усі відкриті порти)
  2. Те ж саме не може пінгнути з консолі
  3. ssh / telnet теж не працює.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.