Не удается пропинговать экземпляр AWS EC2


230

У меня есть экземпляр EC2, работающий в AWS. Когда я пытаюсь пинговать из своего локального ящика, он недоступен.

Как я могу сделать экземпляр pingable?


Я не пингую свои экземпляры ec2, потому что я не хочу включать ICMP в моей группе безопасности просто ради пинга, вместо этого я открываю порты telnet.
Адереми Дайо

Ответы:


280

Добавьте новое правило входящей группы безопасности EC2 :

  • Тип: Пользовательское правило ICMP
  • Протокол: эхо-запрос
  • Порт: N / A
  • Источник: ваш выбор (я бы выбрал Anywhere, чтобы иметь возможность пинговать с любой машины)

3
Спасибо, мне это нравится. Я просто хочу разрешить ping, не всем.
Чу-Сян Лай

Нужен ли мне ICMPv6?
Франклин Ю

Можно попробовать и это. Но мне хватило ICMP
Ракиб

1
Я делаю везде , но он автоматически преобразует его в пользовательский @SyedRakibAlHasan
Alper

25
Легко принять «Эхо-ответ» за «Эхо-запрос», я на мгновение запутался в этом.
Энди

100

Несколько лет спустя, но, надеюсь, это поможет кому-то еще ...

1) Сначала убедитесь, что экземпляр EC2 имеет публичный IP-адрес. Если у вас есть публичный DNS или публичный IP- адрес (обведено ниже), тогда вы должны быть в порядке. Это будет адрес, который вы пингуете. Открытый DNS-адрес AWS

2) Затем убедитесь, что сетевые правила Amazon разрешают эхо-запросы . Перейти в группу безопасности для EC2.

  • щелкните правой кнопкой мыши, выберите входящие правила
  • A: выберите Добавить правило
  • B: Выберите пользовательское правило ICMP - IPv4
  • C: выберите эхо-запрос
  • D: выберите Anywhere или My IP
  • E: выберите Сохранить

Добавьте правило ICMP группы безопасности, чтобы разрешить эхо-запросы и эхо-запросы

3) Затем брандмауэр Windows блокирует входящие эхо-запросы по умолчанию. Разрешить эхо-запросы, создав исключение брандмауэра Windows ...

  • Перейти к началу и введите Брандмауэр Windows в режиме повышенной безопасности.
  • Выберите входящие правила

Добавьте правило ICMP для Windows Server, чтобы разрешить эхо-запросы и эхо-запросы

4) Готово! Надеюсь, теперь вы сможете пинговать свой сервер.


1
Вы спасли мой день! Большое спасибо
Yugandhar Pathi

3
Лучший ответ на сегодняшний день. Очень тщательно
Брайан Вебстер

2
Брандмауэр Windows был виновником и пока не упоминается в других ответах.
crokusek

Я могу пинговать сейчас, но знаете ли вы, как я могу позволить моему приложению узла прослушивать порт, чтобы быть доступным?
FluffyBeing

@zeion - я давно не пользовался AWS (в начале 2017 года я участвовал в испытаниях), поэтому я не смогу сильно помочь. Единственное, что я могу придумать (я уверен, что вы уже пробовали), это использовать вышеуказанные элементы, но для порта, необходимого вашему приложению. Для части брандмауэра Windows, я думаю, вы можете создать новое правило, так как предварительно собранное правило, вероятно, не будет в списке.
Sunsetquest

84

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

По умолчанию все запрещено. Исключение, которое необходимо добавить в группу безопасности, зависит от службы, которую необходимо сделать доступной в Интернете.

Если это веб-сервер, вам нужно разрешить доступ к порту 80для 0.0.0.0/0( что означает любой IP-адрес ).

Чтобы разрешить проверку связи с экземпляром, необходимо включить трафик ICMP.

Веб-консоль AWS предоставляет некоторые наиболее часто используемые параметры в соответствующем раскрывающемся списке.


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

Помимо создания и редактирования группы безопасности, она должна быть связана с экземпляром. Только тогда это вступит в силу.
MikeW

Группы безопасности позволяют вам контролировать трафик к вашему экземпляру, включая тип трафика, который может достигнуть вашего экземпляра. `` `1. Проверьте группы безопасности (разрешено открытие портов) 2. Проверьте правильный VPC 3. Подключите правильную подсеть 4. AWS EC2 должен находиться в общедоступной подсети 5. Включите интернет-шлюз` `` Откройте порты в AWS EC2 проверить эту ссылку Официально AWS [ссылка] [1] Ответ опубликовал Тапан Наян Банкир | Тапан Банкир www.tapanbanker.com
Тапан Банкир

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. Выберите «Echo Request» и «Echo Response» в качестве протокола (для диапазона портов по умолчанию отображается «N / A»)
  7. Введите «0.0.0.0/0» в качестве источника
  8. Нажмите «Сохранить»

12

Пожалуйста, пройдите нижеприведенные контрольные списки

1) Вы должны сначала проверить, запущен ли экземпляр в подсети, где он доступен из Интернета.

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

публичные и частные подсети в aws vpc

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

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

Тип: пользовательский ICMPV4

Протокол: ICMP

Portrange: эхо-запрос

Источник: 0.0.0.0/0

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

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

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

Входящие правила . Исходящие правила

Тип: Пользовательский IPV4 Тип: Пользовательский IPV4

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

Portrange: ECHO REQUEST Portrange: ЭХО ОТВЕТИТЬ

Источник: 0.0.0.0/0 Пункт назначения: 0.0.0.0/0

Разрешить / Запретить: Разрешить Разрешить / Запретить: Разрешить

скриншот входящего правила

Скриншот исходящего правила

4) проверьте все брандмауэры, такие как IPTABLES и отключите для проверки пинга.


Как написать ответ . Добавьте больше деталей, чтобы оправдать свой ответ. и используйте инструменты форматирования
Morse

Спасибо 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 Security Group (сервис находится в EC2 и VPC). Группы безопасности по умолчанию запрещают любой запрос ICMP, который включает в себя пинг. Чтобы разрешить это:

Перейти к: AWS EC2 Экземпляр Локация: группа безопасности связывается с этим экземпляром (возможно наличие нескольких групп безопасности). Проверка: Порт входящих правил для протокола (ICMP) (0 - 65535), если его нет, вы можете добавить его и разрешить его указанный вами исходный IP или другая группа безопасности.


1

Если вы хотите включить 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)


я фактически настроил это как исходящее (выходное) правило в моей группе безопасности, используя terraform, и это сработало как талисман
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
Эхо-ответ не сработал для меня, но Эхо-запрос сработал .
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, у вас есть два случая, чтобы убедиться, что «ALL ICMP» добавлен из EC2, как показано выше, и это само по себе не будет работать, вам нужно обновить Ansible до последней версии 2.4, он не работал с моей предыдущей версией 2.2.


0

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

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

  1. ВСЕ ICMP для пинга.

  2. HTTP для доступа к URL через порт HTTP.

  3. HTTPS для доступа к URL через защищенный порт HTTP.

Согласно вашему требованию вы можете изменить ИСТОЧНИК


0

возможно, ваша внутренняя сеть блокирует этот IP-адрес для ping или блокирует ping-пакет в брандмауэре, если вы открыли группу безопасности и VPC верен.


-1

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

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


6
Ваше второе правило "Весь трафик" из "Где угодно" - не очень хорошая идея.
Девин

-3

При доступе к новым портам в экземпляре ec2. Вы добавили в 2 местах. 1. Группа безопасности входящих портов. 2. Настройки брандмауэра входящие правила.


-3
  1. Убедитесь, что вы используете Public IP вашего экземпляра aws ec2 для проверки связи.

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

  3. попробуйте пинговать, если это не исправляет, а затем добавить исходящее правило для ICMP в группу безопасности.


-4

Я хотел бы упомянуть некоторые редкие проблемы, вызванные провайдером. Иногда с BSNL случается следующее. это одна из тех странных проблем, которая отнимает часы из вашей повседневной жизни. В таком случае можно поднять проблему с провайдером или сменить провайдера.

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