У мене є екземпляр EC2, який працює в AWS. Коли я намагаюся пінг з моєї локальної скриньки, вона недоступна.
Як я можу зробити екземпляр pingable?
У мене є екземпляр EC2, який працює в AWS. Коли я намагаюся пінг з моєї локальної скриньки, вона недоступна.
Як я можу зробити екземпляр pingable?
Відповіді:
Додайте нове вхідне правило групи безпеки EC2 :
ping
, не всі.
Кілька років пізно, але сподіваємось, це допоможе комусь іншому ...
1) Спочатку переконайтеся, що екземпляр EC2 має загальнодоступний IP. Якщо є загальнодоступна DNS або загальнодоступна IP- адреса (обведена нижче), ви повинні бути хорошими. Це буде адреса, за якою ви пінг.
2) Далі переконайтеся, що правила мережі Amazon дозволяють Echo Requests . Перейдіть до групи безпеки для EC2.
3) Далі, брандмауер Windows блокує вхідні запити Echo за замовчуванням. Дозволити запити Echo, створивши виняток брандмауера Windows ...
4) Готово! Сподіваємось, тепер ви зможете пінг-сервер.
Ви повинні відредагувати групу безпеки, до якої належить ваш екземпляр EC2, і дозволити доступ (або, як альтернатива, створити новий і додати до нього екземпляр).
За замовчуванням все відмовлено. Виняток, який потрібно додати до групи безпеки, залежить від послуги, яку потрібно зробити доступною для Інтернету.
Якщо це веб-сервер, вам потрібно дозволити доступ до порту 80
для 0.0.0.0/0
( це означає будь-яку IP-адресу ).
Щоб дозволити pinging екземпляр, вам потрібно включити трафік 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
Портранж: Ехо-запит
Джерело: 0.0.0.0/0
3) Перевірте, чи є у вас достатньо правил у брандмауері рівня підмережі під назвою NACL.ANACL - це брандмауер без стану, який потребує окремо вказаного вхідного та вихідного трафіку. NACL застосовується на рівні підмережі. правила NACL. Нижче наведено посилання, в якому буде детальніше про нього.
Правила введення . Вихідні правила
Тип: Спеціальний тип IPV4: Спеціальний IPV4
Протокол: протокол ICMP: ICMP
Портранж: ECHO ЗАЯВКА Портрансляція: ECHO ЗАВДАННЯ
Джерело: 0.0.0.0/0 Місце призначення: 0.0.0.0/0
Дозволити / Заборонити: Дозволити Дозволити / Заборонити: Дозволити
4) перевірити будь-які брандмауери типу IPTABLES та disble для тестування пінгу.
Створення нової групи безпеки з 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 (послуга, знайдена в EC2 та VPC). Група безпеки за замовчуванням забороняє будь-який запит ICMP, що включає в себе ping. Щоб дозволити це:
Перейти: Знайти екземпляр AWS EC2 : Група безпеки прив'язується до цього примірника (Можна мати кілька груп безпеки) Перевірка: Правила вхідного порту протоколу (ICMP) (0 - 65535), якщо його немає, ви можете додати його та дозволити ваш вказаний IP-код або інша група безпеки.
Якщо ви хочете програмно ввімкнути пінг (з будь-якого місця), через 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, у вас є два переконання в тому, що "ВСІ ICMP" додано з EC2, як показано вище, і що поодинці не буде працювати, вам доведеться оновити Ansible до новітньої версії 2.4, він не працював з моєю попередньою версією 2.2.
Вам слід відкрити наступний порт безпеки в групі безпеки. Кожне правило призначене для різних цілей, як показано нижче.
ВСІ ICMP для ping.
HTTP для доступу до URL на HTTP-порту.
HTTPS для доступу до URL на захищеному HTTP-порту.
Відповідно до вашої вимоги ви можете змінити ДЖЕРЕЛ
можливо, ваша внутрішня мережа блокує цей IP для ping або заблокований пакет ping у вашому брандмауері, якщо ви відкрили групу безпеки і VPC є правильним.
Переконайтеся, що ви використовуєте Public IP для вас, наприклад, екземпляр ec2 для ping.
відредагуйте групу безпеки, яка приєднана до вашого екземпляра EC2, і додайте вхідне правило для протоколу ICMP.
спробуйте pinging, якщо це не виправлено, тоді додайте вихідне правило для ICMP у групі безпеки.
Я хотів би згадати деякі рідкісні проблеми, викликані провайдером. Іноді трапляється зі мною BSNL. це одна з тих страшних проблем, яка займає години у вашому повсякденному житті. У такому випадку можна порушити проблему з провайдером або змінити провайдера.