it-swarm.com.ru

Возможные причины тайм-аута при попытке доступа к экземпляру EC2

Я не могу использовать SSH в моем экземпляре - тайм-аут операции. Какие могут быть причины, и что я могу сделать, чтобы решить эту проблему? Перезагрузка, как правило, занимает много времени для вступления в силу, и может только усугубить ситуацию

ОБНОВЛЕНИЕ: Речь идет не о разрешениях - я могу нормально войти в систему. Я подозреваю, что это может быть из-за проблем с памятью

79
ming yeow

Вы установили соответствующую группу безопасности для экземпляра? То есть тот, который разрешает доступ из вашей сети к порту 22 на экземпляре. (По умолчанию весь трафик запрещен.)

Обновление: хорошо, не проблема группы безопасности. Но проблема сохраняется, если вы запускаете другой экземпляр из того же AMI и пытаетесь получить к нему доступ? Может быть, этот конкретный экземпляр EC2 просто как-то случайно вышел из строя - это только вопрос времени, когда что-то подобное происходит. (Рекомендуемое чтение: Архитектура для облака: лучшие практики (PDF), статья Джинеша Вариа, евангелиста веб-сервисов в Amazon. См., В частности, раздел, озаглавленный «Проектирование на провал, и ничто не подведет».)

62
Jonik

У меня была та же проблема, и в результате я добавил IP моего локального компьютера В список входящих правил в группе активной безопасности В открывшемся диалоговом окне ниже введите 22 в диапазоне портов, ваш локальный IP / 32 в поле источника и оставьте «пользовательское правило tcp» в раскрывающемся списке. 

enter image description here

83
ted.strauss

Уничтожь и создай заново

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

Строя все обратно, я должен был убедиться, что создал ВСЕ. Это включало:

  • СоздатьVPC
    • CIDR: 10.0.0.0/24
  • Создать Интернет-шлюз
  • Присоединить Интернет-шлюз кVPC
  • Создать Таблица маршрутизации
  • Добавить Маршрут к Таблица маршрутизации
    • Destination: 0.0.0.0/0
    • Target: <Internet Gateway from earlier>
  • Создать Подсеть
    • CIDR: 10.0.0.0/24
    • Routing Table: <Routing Table from earlier

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

Предложение

Я не предлагаю, чтобы вы стали термоядерными, как я. Я предлагаю всю эту информацию, чтобы вы могли проверить эти ассоциации, чтобы убедиться в их правильности.

24
Bruno Bronosky

Этот ответ для глупых людей (как я). Общедоступный DNS вашего EC2 может (будет) изменяться при перезапуске. Если вы этого не понимаете и не пытаетесь подключиться к старому общедоступному DNS-серверу через SSH, соединение будет остановлено и истечет время ожидания. Это может привести вас к предположению, что что-то не так с вашей EC2 или группой безопасности или ... Нет, просто SSH в новый DNS. И обновите свой ~/.ssh/config файл, если вам нужно!

18
dslosky

Для подключения используйте ssh так:

ssh -i keyname.pem [email protected]

Где keyname.pem - это имя вашего личного ключа, username - правильное имя пользователя для вашего дистрибутива os, а xxx.xx.xxx.xx - публичный IP-адрес. 

Когда оно истекает или происходит сбой, проверьте следующее:

Группа безопасности

Убедитесь, что у вас есть входящее правило для tcp port 22 и все ips или ваш ip. Вы можете найти группу безопасности через меню ec2, в опциях экземпляра.

Таблица маршрутизации

Для новой подсети в vpc вам необходимо перейти к таблице маршрутизации, которая указывает 0.0.0.0/0 на целевой интернет-шлюз . Когда вы создаете подсеть в вашем vpc, по умолчанию она назначает таблицу маршрутизации по умолчанию, которая, вероятно, не принимает входящий трафик из Интернета. Вы можете редактировать параметры таблицы маршрутизации в меню vpc, а затем в подсетях.

Эластичный IP

Для экземпляра в vpc вам необходимо назначить открытый эластичный IP-адрес и связать его с экземпляром. Частный IP-адрес не может быть доступен извне. Вы можете получить эластичный ip в меню ec2 (не в экземпляре). 

Username

Убедитесь, что вы используете правильное имя пользователя . Это должен быть один из ec2-user или root или ubuntu. Попробуйте их все при необходимости. 

Закрытый ключ

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

11
AJcodez

Вы смотрели на вывод консоли из экземпляра? Вы можете сделать это через консоль AWS (Экземпляры -> Щелкните правой кнопкой мыши на экземпляре -> Получить системный журнал). У меня были случаи, когда сетевые службы на экземпляре EC2 не запускались правильно, что приводило к тайм-ауту соединений SSH; перезапуск экземпляра обычно исправляет вещи.

7
gareth_bowles

 enter image description here

После 2 часов я нашел это

Обратите внимание, что ssh ip 120.138.105.251/32 

  • IS НЕ aws экземпляр IP-адреса

  • Это не ваш локальный ip 127.0.0.1

  • Это не ваш локальный ip localhost

НО НО НО

Это ваш публичный IP-адрес вашего персонального компьютера, с которого вы пытаетесь получить доступ к экземпляру aws

  1. Перейдите на https://www.whatismyip.com/ любой IP-адрес, указанный в ssh

ЕСЛИ ВЫ ХОТИТЕ ПОЛНОСТЬЮ ОТКРЫТЬ SSH НА ВСЕ IP-АДРЕС enter image description here

ЭТО IS КАК ПОЛНОСТЬЮ ДОСТУПНЫ ЗАПИСИ ЗАПИСЕЙ - ОСНОВНЫЕ РЕКОМЕНДУЕМЫЕ enter image description here

ЭТО IS ЧТО Я ИСПОЛЬЗУЮ В ПРОИЗВОДСТВЕ enter image description here

2
vijay

Просто перезагрузите инстанс Ec2, как только вы примените правила

1
Shaz

Ниже перечислены возможные проблемы:

  • Наиболее вероятным является то, что группа безопасности не настроена должным образом для предоставления доступа SSH через порт 22 к вашему i.p. Изменение настроек безопасности не требует перезапуска сервера, чтобы оно было эффективным, но нужно подождать несколько минут, чтобы оно вступило в силу.

  • Конфигурация локального брандмауэра не разрешает SSH доступ к серверу. (вы можете попробовать другое подключение к интернету, ваш телефон/ключ, чтобы попробовать это)

  • Сервер не запускается должным образом (тогда проверки доступа не пройдут даже на консоли Amazon), в этом случае вам нужно будет остановить и запустить сервер. 

1
pradosh nair

У меня была похожая проблема, когда я использовал публичный Wi-Fi, который не имел пароля. Переключение интернет-соединения на безопасное соединение решило проблему.

0
Bharath Ram

Еще одна возможность. Группы безопасности AWS настроены на работу только с определенными входящими IP-адресами. Если ваша группа безопасности настроена таким образом, вам (или владельцу учетной записи) нужно будет добавить свой IP-адрес в группу безопасности. Для этого откройте панель инструментов AWS, выберите группы безопасности, выберите группу безопасности и нажмите на вкладку «Входящие». Затем добавьте ваш IP в зависимости от ситуации.

0
LA Ferguson

У меня была такая же проблема, и я решил ее, добавив правило в группы безопасности

Входящий SSH 0.0.0.0/0

Или вы можете добавить только свой IP-адрес

0
Majali

Если доступ SSH не работает для вашего экземпляра EC2, вам необходимо проверить:

  • Группа безопасности для вашего экземпляра разрешает входящий доступ по SSH (проверьте: просмотреть правила).

Если вы используете экземпляр VPC (к вашему экземпляру прикреплены идентификатор VPC и идентификатор подсети), проверьте:

  1. В панели мониторинга VPC найдите используемый идентификатор подсети, который прикреплен к вашему VPC.
  2. Проверьте прикрепленный Таблица маршрутов, который должен иметь 0.0.0.0/0 в качестве пункта назначения, а ваш Интернет-шлюз в качестве цели.

В Linux вы также можете проверить информацию о маршруте в Системный журнал в Сеть экземпляра, например:

++++++++++++++++++++++++++++++++++++++Net device info+++++++++++++++++++++++++++++++++++++++
+--------+------+------------------------------+---------------+-------+-------------------+
| Device |  Up  |           Address            |      Mask     | Scope |     Hw-Address    |
+--------+------+------------------------------+---------------+-------+-------------------+
|   lo   | True |          127.0.0.1           |   255.0.0.0   |   .   |         .         |
|  eth0  | True |         172.30.2.226         | 255.255.255.0 |   .   | 0a:70:f3:2f:82:23 |
+--------+------+------------------------------+---------------+-------+-------------------+
++++++++++++++++++++++++++++Route IPv4 info+++++++++++++++++++++++++++++
+-------+-------------+------------+---------------+-----------+-------+
| Route | Destination |  Gateway   |    Genmask    | Interface | Flags |
+-------+-------------+------------+---------------+-----------+-------+
|   0   |   0.0.0.0   | 172.30.2.1 |    0.0.0.0    |    eth0   |   UG  |
|   1   |   10.0.3.0  |  0.0.0.0   | 255.255.255.0 |   lxcbr0  |   U   |
|   2   |  172.30.2.0 |  0.0.0.0   | 255.255.255.0 |    eth0   |   U   |
+-------+-------------+------------+---------------+-----------+-------+

где UG флаги, показывающие ваш интернет-шлюз.

Для получения более подробной информации, проверьте: Устранение неполадок при подключении к вашему экземпляру на Amazon Docs.

0
kenorb

Проверьте эту страницу справки в документах AWS: 

http://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/TrounticationInstancesConnecting.html#TroubilityInstancesConnectionTimeout Возможно, вы найдете там свое решение. для меня эта часть сделала исправление: 

[EC2-VPC] Проверьте таблицу маршрутов для подсети. Вам нужен маршрут, который отправляет весь трафик, предназначенный за пределами VPC, в шлюз Интернета для VPC.

  • Откройте консоль Amazon VPC по адресу https://console.aws.Amazon.com/vpc/ .

  • В области навигации выберите Интернет-шлюзы. Убедитесь, что к вашему VPC подключен интернет-шлюз. В противном случае выберите Создать Интернет-шлюз и следуйте инструкциям по созданию Интернета шлюз, выберите Интернет-шлюз, а затем выберите Присоединить к VPC и следуйте инструкциям, чтобы прикрепить его к вашему VPC.

  • В области навигации выберите «Подсети», а затем выберите свою подсеть.

  • На вкладке Таблица маршрутов убедитесь, что существует маршрут с 0.0.0.0/0 в качестве пункта назначения и Интернет-шлюз для вашего VPC в качестве цель. В противном случае выберите идентификатор таблицы маршрутизации (rtb-xxxxxxxx) в перейдите на вкладку Routes для таблицы маршрутов, выберите Edit, Add другой маршрут, введите 0.0.0.0/0 в пункте назначения, выберите свой Интернет шлюз от цели, а затем выберите Сохранить.

Но я советую вам проверить все варианты, описанные в приведенной выше ссылке, там вы можете найти одну или несколько проблем, которые у вас возникли. 

0
Meltzer

Моя проблема - у меня был открыт порт 22 для «Мой IP» и изменил интернет-соединение и изменение IP-адреса вызвало. Так что пришлось поменять его обратно.

0
smDev

Чтобы включить ssh-доступ из Интернета для экземпляров в подсети VPC, выполните следующие действия:

  • Подключите интернет-шлюз к вашему VPC.
  • Убедитесь, что таблица маршрутов вашей подсети указывает на интернет-шлюз.
  • Убедитесь, что экземпляры в вашей подсети имеют глобально уникальный IP-адрес (общедоступный IPv4-адрес, эластичный IP-адрес или IPv6-адрес).
  • Убедитесь, что управление доступом к сети (на уровне VPC) и правила группы безопасности (на уровне ec2) позволяют пропускать соответствующий трафик в ваш экземпляр и из него. Убедитесь, что ваш сетевой публичный IP-адрес включен для обоих. По умолчанию Network AcL разрешает весь входящий и исходящий трафик, если явно не указано иное.
0
Innocent Anigbo

У меня была та же проблема, и решением было разрешить доступ из любого места к списку входящих правил в активной группе безопасности. Во входящем диалоговом окне введите 22 в диапазоне портов, в любом месте в поле источника и выберите «ssh» в раскрывающемся списке.

П.С .: Возможно, это не рекомендуемое решение, так как это означает, что этот экземпляр можно скопировать с любого компьютера, но я не смог заставить его работать с моим локальным IP.

0
Yahya

Для меня это был сервер Apache, размещенный на экземпляре EC2 t2.micro linux, а не сам экземпляр EC2. 

Я исправил это, выполнив: 

Sudo su

service httpd restart

0
Gus

Основываясь на ответе @ted.strauss, вы можете выбрать SSH и MyIP из выпадающего меню вместо перехода на сторонний сайт.

0
Adam J. Gramling