У меня есть экземпляр EC2, работающий в AWS. Когда я пытаюсь пинговать из своего локального ящика, он недоступен.
Как я могу сделать экземпляр pingable?
У меня есть экземпляр EC2, работающий в AWS. Когда я пытаюсь пинговать из своего локального ящика, он недоступен.
Как я могу сделать экземпляр pingable?
Ответы:
Добавьте новое правило входящей группы безопасности EC2 :
ping
, не всем.
Несколько лет спустя, но, надеюсь, это поможет кому-то еще ...
1) Сначала убедитесь, что экземпляр EC2 имеет публичный IP-адрес. Если у вас есть публичный DNS или публичный IP- адрес (обведено ниже), тогда вы должны быть в порядке. Это будет адрес, который вы пингуете.
2) Затем убедитесь, что сетевые правила Amazon разрешают эхо-запросы . Перейти в группу безопасности для EC2.
3) Затем брандмауэр Windows блокирует входящие эхо-запросы по умолчанию. Разрешить эхо-запросы, создав исключение брандмауэра Windows ...
4) Готово! Надеюсь, теперь вы сможете пинговать свой сервер.
Вы должны отредактировать группу безопасности, к которой принадлежит ваш экземпляр 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 перейдите по ссылке ниже.
публичные и частные подсети в aws vpc
2) Проверьте, правильно ли добавлены правила группы безопасности. Если нет, добавьте приведенное ниже правило в группу безопасности, присоединенную к экземпляру. Группа безопасности - это брандмауэр, подключенный к каждому запущенному экземпляру. Группы безопасности содержат правила входящего / исходящего трафика, которые разрешают трафик в / out of instance.by по умолчанию для каждой группы безопасности разрешен весь исходящий трафик из экземпляра и отсутствует входящий трафик в экземпляр. Для получения более подробной информации о трафике проверьте ссылку ниже.
документация группы безопасности
Тип: пользовательский ICMPV4
Протокол: ICMP
Portrange: эхо-запрос
Источник: 0.0.0.0/0
3) Проверьте, достаточно ли у вас правил в брандмауэре уровня подсети, называемом NACL. NACL - это брандмауэр без состояния, для которого требуется отдельно указывать как входящий, так и исходящий трафик. NACL применяется на уровне подсети, все экземпляры в подсети попадают под правила NACL. Ниже приведена ссылка, которая будет иметь более подробную информацию о нем.
Входящие правила . Исходящие правила
Тип: Пользовательский IPV4 Тип: Пользовательский IPV4
Протокол: ICMP Протокол: ICMP
Portrange: ECHO REQUEST Portrange: ЭХО ОТВЕТИТЬ
Источник: 0.0.0.0/0 Пункт назначения: 0.0.0.0/0
Разрешить / Запретить: Разрешить Разрешить / Запретить: Разрешить
4) проверьте все брандмауэры, такие как IPTABLES и отключите для проверки пинга.
Создание новой группы безопасности с All ICMP работало на меня.
Те, кто новичок в aws ec2 и хотят получить доступ к экземпляру SSH, Broswer, Ping from system
ниже, являются входящим правилом для них: -
Перейдите в группу безопасности экземпляра EC2 и отредактируйте правило входящих разрешений 0.0.0.0/0 для ICMP.
Это сработает.
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). Группы безопасности по умолчанию запрещают любой запрос ICMP, который включает в себя пинг. Чтобы разрешить это:
Перейти к: AWS EC2 Экземпляр Локация: группа безопасности связывается с этим экземпляром (возможно наличие нескольких групп безопасности). Проверка: Порт входящих правил для протокола (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)
Группы безопасности позволяют вам контролировать трафик к вашему экземпляру, включая тип трафика, который может достигнуть вашего экземпляра.
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.
Да, вам нужно открыть доступ к порту. Посмотрите на группы безопасности http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html
Ваш экземпляр EC2 должен быть присоединен к группе безопасности, которая разрешает доступ, который вам требуется.
Если вы установите правила как «Пользовательское правило ICMP» и «эхо-ответ» в любом месте, оно будет работать как чемпион. «Эхо-запрос» - неправильное правило для ответа на эхо-запросы.
У меня была более глубокая проблема - я создал VPC, подсеть и соответствующую группу безопасности, но не смог добавить интернет-шлюз и связать его с моей подсетью. Так как это мой первый результат Google для "Can't ping ec2", я публикую эту информацию здесь на случай, если она окажется полезной для кого-то другого (или для меня в будущем).
терраформировать инструкции , специфичные для группы безопасности , потому что -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"]
}
}
У меня возникла та же проблема, связанная с подключением с linux-сервера к EC2, у вас есть два случая, чтобы убедиться, что «ALL ICMP» добавлен из EC2, как показано выше, и это само по себе не будет работать, вам нужно обновить Ansible до последней версии 2.4, он не работал с моей предыдущей версией 2.2.
Вы должны открыть следующий порт безопасности в группе безопасности. Каждое правило предназначено для разных целей, как показано ниже.
ВСЕ ICMP для пинга.
HTTP для доступа к URL через порт HTTP.
HTTPS для доступа к URL через защищенный порт HTTP.
Согласно вашему требованию вы можете изменить ИСТОЧНИК
возможно, ваша внутренняя сеть блокирует этот IP-адрес для ping или блокирует ping-пакет в брандмауэре, если вы открыли группу безопасности и VPC верен.
При доступе к новым портам в экземпляре ec2. Вы добавили в 2 местах. 1. Группа безопасности входящих портов. 2. Настройки брандмауэра входящие правила.
Убедитесь, что вы используете Public IP вашего экземпляра aws ec2 для проверки связи.
отредактируйте группу безопасности, которая прикреплена к вашему экземпляру EC2, и добавьте правило для входящего протокола ICMP.
попробуйте пинговать, если это не исправляет, а затем добавить исходящее правило для ICMP в группу безопасности.
Я хотел бы упомянуть некоторые редкие проблемы, вызванные провайдером. Иногда с BSNL случается следующее. это одна из тех странных проблем, которая отнимает часы из вашей повседневной жизни. В таком случае можно поднять проблему с провайдером или сменить провайдера.