Можливі причини тайм-ауту при спробі отримати доступ до екземпляра EC2


102

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

ОНОВЛЕННЯ: Мова не йде про дозволи, я можу нормально ввійти в систему. Я підозрюю, що це може бути через проблеми з пам’яттю


3
Спробуйте спробувати serverfault.com, оскільки це насправді не питання програмування.
rwilliams

Брандмауер? Слухати SSH на цьому порту?
OMG Ponies

1
Проблема зберігається, якщо запустити інший екземпляр? (Це також може допомогти дізнатися більше про ваше налаштування.) Я оновив свою відповідь.
Джонік

Перший пінг DNS. Якщо не вдалося, то налаштуйте свої вхідні / вихідні правила у майстрі запуску. налаштуйте ВСІЙ трафік та ВСІ протоколи та просто збережіть за допомогою параметрів за замовчуванням. Знову зв’яжіться зі своєю локальною системою, а потім має працювати.
Діва

Відповіді:


67

Ви встановили відповідну групу безпеки для цього примірника? Тобто той, що дозволяє отримати доступ з вашої мережі до порту 22 на примірник. (За замовчуванням весь трафік заборонений.)

Оновлення: Гаразд, не проблема групи безпеки. Але чи проблема не зникає, якщо ви запускаєте інший екземпляр з того самого AMI і намагаєтеся отримати доступ до цього? Можливо, цей конкретний екземпляр EC2 якимось випадковим чином вийшов з ладу - це лише питання часу, що щось подібне станеться. (Рекомендовано прочитати: Архітектура для хмари: кращі практики (PDF), документ Джинеш Варі, який є євангелістом веб-служб в Amazon. Особливо дивіться розділ під назвою "Дизайн для відмови, і нічого не вийде з ладу".)


Ось те саме в EC2 FAQ: developer.amazonwebservices.com/connect/… (Крім того ec2-authorize, ви можете використовувати розширення Elasticfox Firefox для легкого налаштування груп.)
Jonik,

1
Боже мій ... відкриття порту SSH у групі є таким простим , я не можу повірити, що його тут немає: alestic.com/2009/08/ec2-connectivity . Дякуємо, що вказали на це.
mtyson

о, я повністю забув про групу безпеки! Дякую!
Антоніо Бено

91

У мене була така ж проблема, і рішення в кінцевому підсумку було додаванням IP моєї локальної машини до списку вхідних правил групи активної безпеки. У діалоговому вікні вхідних даних нижче введіть 22 у діапазоні портів, локальний IP / 32 у вихідному полі та залиште "користувальницьке правило tcp" у спадному меню.

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


6
Після натискання кнопки "Додати правило" вам також потрібно натиснути "застосувати зміну правила", щоб воно набрало чинності. Не забувайте цього. Це мене заплутало кілька разів.
ted.strauss

Дякую тоні за це!
Hego555

Ідеальна відповідь! Мене більше не страшно
зламати

2
це працювало для мене, дякую !! Чомусь .. моя ip-адреса змінилася, і раптом я не зміг стати ssh до мого екземпляру ec2. Я щойно додав правило, і замість того, щоб ставити ip-адресу "на замовлення", я просто вибрав "свій IP-адресу" та wala ... Мені вдалося ввімкнути скриньку!
rikkitikkitumbo

Хороша відповідь! Я також вважаю це усунення несправностей з AWS дуже корисним, і воно містить пункт, запропонований тут вище.
J0ANMM

28

Знищуйте і створюйте заново

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

Будуючи все назад, я повинен був переконатися, щоб створити ВСЕ. Сюди входили:

  • Створіть 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

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

Пропозиція

Я не пропоную вам пройти термоядерний я, як я. Я пропоную всю цю інформацію, щоб ви могли перевірити ці асоціації, щоб переконатися, що ваші відповідні.


6
це мені справді допомогло! У мене був випадок, коли моя таблиця маршрутизації не була вказана на Інтернет-шлюз, і це було єдиним питанням.
EdgeCaseBerg

Чесно кажучи, я документую ці речі на SO та в github / gists, тому що я знаю, що буду вибивати себе, коли мені потрібно зробити це ще раз через 2 місяці. Я сподіваюся, що це допомагає і іншим. Але врешті-решт я просто егоїстична катастрофа. Дякуємо, що знайшли час для коментарів, @EdgeCaseBerg.
Бруно Броноський

2
Дякую TON @BrunoBronosky. Точно, якщо цей "шлюз для Інтернету" є таким необхідним, то чому тоді документація AWS за замовчуванням не згадує про це? :(
Ананд

1
@BrunoBronosky дякую! Саме це заважало мені підключатися до екземпляра. Я врятую ці кроки для мене в майбутньому.
saiyancoder

21

Ця відповідь - для дурних людей (як я). Загальнодоступний DNS вашого EC2 може (зміниться) під час його перезавантаження. Якщо ви цього не усвідомлюєте і не спробуєте ввести SSH у свій старий загальнодоступний DNS, з'єднання зупиниться та закінчиться. Це може призвести до того, що ви вважаєте, що щось не так з вашою EC2 або групою безпеки або ... Ні, просто SSH у новому DNS. І оновіть свій ~/.ssh/configфайл, якщо вам доведеться!


За годину вирішення проблем із тимчасовим очікуванням, і це було рішенням. Дякую :)
Ерік Д. Браун

2
Дуже дякую @dslosky, що ти врятував мені життя. :)
A_01

13

Для підключення використовуйте ssh так:

ssh -i keyname.pem username@xxx.xx.xxx.xx

Де keyname.pemназва вашого приватного ключа,username правильне ім'я користувача для вашого розповсюдження ОС, і xxx.xx.xxx.xxце публічна ip-адреса.

Коли час закінчується або виходить з ладу, перевірте наступне:

Група безпеки

Переконайтеся, що є вхідне правило для порта 22 tcp і а також усіх ips або ip. Ви можете знайти групу безпеки через меню ec2, в опціях екземпляра.

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

Для нової підмережі в vpc вам потрібно змінити таблицю маршрутизації, яка вказує 0,0.0,0/0 на цільовий шлюз для Інтернету . Коли ви створюєте підмережу у своєму vpc, за замовчуванням він призначає таблицю маршрутизації за замовчуванням, яка, ймовірно, не приймає вхідний трафік з Інтернету. Ви можете редагувати параметри таблиці маршрутизації в меню vpc, а потім підмережах.

Еластичний IP

Для прикладу в vpc, вам потрібно призначити загальнодоступну еластичну ip адресу та пов’язати її з екземпляром. Не можна отримати доступ до приватної IP-адреси ззовні. Ви можете отримати еластичний ip в меню ec2 (не меню екземпляра).

Ім'я користувача

Переконайтеся, що ви використовуєте правильне ім’я користувача . Це повинно бути одним з ec2-userабо rootабо ubuntu. Спробуйте їх усі, якщо потрібно.

Приватний ключ

Переконайтеся, що ви використовуєте правильний приватний ключ (той, який ви завантажуєте або вибираєте під час запуску екземпляра). Здається, очевидно, але копіювати пасту дісталося мені двічі.


1
Дякую за це, я завжди забуваю додати 0.0.0.0/0 до цілі шлюзу в Інтернеті, коли створюю новий VPC
Чатхушка,

7

Ви подивилися на консольний вихід із екземпляра? Це можна зробити за допомогою консолі AWS (Екземпляри -> Клацніть правою кнопкою миші на екземпляр -> Отримати системний журнал). У мене були випадки, коли мережеві послуги в екземплярі EC2 не запускалися належним чином, в результаті чого SSH з'єднання були вичерпані; перезапуск екземпляра зазвичай фіксує речі.


3

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

ПІСЛЯ 2 ГОДИНИ Я ЗНАЙДАЮ ЦЕ

Зауважте, що ssh ip 120.138.105.251/32

  • НЕ Aws екземпляр IP АДРЕСА

  • Це не ваш місцевий ip 127.0.0.1

  • Це не ваш місцевий ip localhost

АЛЕ АЛЕ АЛЕ

Це Ваша публічна ip-адреса вашого персонального комп’ютера, з якого ви намагаєтеся отримати доступ до aws-екземпляра

  1. Перейдіть за посиланням https://www.whatismyip.com/ незалежно від ip-адреси, яку вкладено в ssh

ЯКЩО Ви хочете повністю відкрити SSH на ВСІ ІР-АДРЕСИ введіть тут опис зображення

ЦЕ ПІДПРИЄМНІСТЬ ДОСТУПНІ ВХОДИ - ОСНОВНІ РЕКОМЕНДОВАНІ введіть тут опис зображення

Це те, що я вживаю у виробництві введіть тут опис зображення


2

Наступні можливі питання:

  • Найбільш вірогідним є те, що група безпеки не налаштована належним чином, щоб забезпечити доступ SSH через порт 22 до вашого ip. Для зміни налаштувань безпеки не потрібен перезапуск сервера, щоб він був ефективним, але потрібно почекати кілька хвилин, щоб це було застосовно.

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

  • Сервер не запускається належним чином (тоді перевірки доступу не вдасться навіть на консолі amazon), і в цьому випадку вам потрібно буде зупинити і запустити сервер.


У моєму випадку це проблема брандмауера в мережі, над якою я працюю. Використання VPN для обходу його спрацювало.
MDave

1

Перегляньте цю довідкову сторінку в документах AWS:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInsancesConnecting.html#TroubleshootingInsancesConnectionTimeout Ви, ймовірно, знайдете там своє рішення. для мене ця частина зробила виправлення:

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

  • Відкрийте консоль Amazon VPC за адресою https://console.aws.amazon.com/vpc/ .

  • На панелі навігації виберіть Internet Gateways. Переконайтеся, що до вашого VPC приєднано Інтернет-шлюз. В іншому випадку виберіть Створити Інтернет-шлюз і дотримуйтесь вказівок, щоб створити Інтернет-шлюз, виберіть Інтернет-шлюз, а потім виберіть «Приєднати до VPC» та дотримуйтесь вказівок, щоб приєднати його до своєї VPC.

  • На панелі навігації виберіть Підмережі та виберіть свою підмережу.

  • На вкладці "Таблиця маршрутів" переконайтесь, що існує маршрут із призначенням 0.0.0.0/0 та Інтернет-шлюз для вашого VPC як цілі. В іншому випадку виберіть ідентифікатор таблиці маршруту (rtb-xxxxxxxx), щоб перейти до вкладки "Маршрути" таблиці маршрутів, виберіть "Редагувати", "Додати інший маршрут", введіть 0,0.0,0/0 у пункт призначення, виберіть Інтернет-шлюз із "Цільовий", а потім виберіть Зберегти.

Але я пропоную вам ознайомитися з усіма варіантами, на які посилається вище посилання, ви можете знайти там одну або кілька проблем, які ви отримали.


1

Моя проблема - у мене був відкритий порт 22 для "Мій IP" та змінено підключення до Інтернету та викликана зміна IP адреси. Тож довелося це змінити назад.


1

Вибираючи @ted.straussвідповідь, ви можете вибрати SSHіMyIP зі спадного меню замість переходу на сторонній сайт.


1

Просто перезавантажте екземпляр Ec2, коли ви застосували Правила


1

Дозволити ssh та порт 22 від ufw, а потім увімкніть його та перевірте команду стану

sudo ufw allow ssh
sudo ufw allow 22
sudo ufw enable
sudo ufw status

0

Ще одна можливість. Групи безпеки AWS налаштовані працювати лише з конкретними вхідними IP-адресами. Якщо ваша група безпеки налаштована таким чином, вам (або власнику облікового запису) потрібно буде додати вашу ip адресу до групи безпеки. Після цього відкрийте панель інструментів AWS, виберіть групи безпеки, виберіть групу безпеки та натисніть на вхідну вкладку. Потім додайте ip, якщо потрібно.


0

У мене була така ж проблема, і рішення було дозволити доступ з будь-якого місця до списку вхідних правил групи активної безпеки. У діалоговому вікні введення введіть 22 у діапазоні портів і будь-де в полі джерела, і виберіть "ssh" у спадному меню.

PS: Це може бути не рекомендованим рішенням, оскільки це означає, що цей екземпляр може бути збито з будь-якої машини, але я не зміг змусити його працювати з локальним IP-адресою.


0

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


0

Якщо доступ 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.


0

Щоб дозволити доступ до ssh з Інтернету для екземплярів підмережі VPC, виконайте наступне:

  • Приєднайте до свого VPC Інтернет-шлюз.
  • Переконайтесь, що таблиця маршрутів вашої підмережі вказує на Інтернет-шлюз.
  • Переконайтесь, що екземпляри вашої підмережі мають глобально унікальну IP-адресу (загальнодоступна IPv4-адреса, еластична IP-адреса або IPv6-адреса).
  • Переконайтесь, що ваш контроль доступу до мережі (на рівні VPC) та правила групи безпеки (на рівні ec2) дозволяють потоку відповідного трафіку надходити до і з вашого примірника. Переконайтеся, що для вашої мережі відкрита IP-адреса для обох. За замовчуванням Network AcL дозволяє весь вхідний та вихідний трафік, крім явно налаштованого іншого

0

Для мене це був сервер apache, розміщений на екземплярі EC2 linux EC2, а не сам екземпляр EC2.

Я виправив це, зробивши:

sudo su

service httpd restart


0

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

Вхідний SSH 0,0.0.0/0

Або ви можете додати лише свою IP-адресу


0

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


0

Я працював над екземпляром, і це було добре, вже наступного дня, коли я спробував SSH у свій екземпляр, він сказав - Час очікування підключення.

Я намагався пройти цю посаду, але нічого не вийшло. Так я і зробив -

У Edit inbound rulesстовпці джерела виберіть, MY IPі він автоматично заповнить вашу загальнодоступну IP-адресу у форматі CIDR ( XXX.XXX.XXX.XX/32).

Я спробував відповісти @ ted.strauss, вказавши локальний IP, але це не допомогло в моєму випадку. Тому я вибираю МОЙ IP, і він спрацював.

Сподіваюся, це комусь допоможе!


0

Перший пінг DNS. Якщо не вдалося, то налаштуйте свої вхідні / вихідні правила у майстрі запуску. налаштуйте ВСІЙ трафік та ВСІ протоколи та просто збережіть за допомогою параметрів за замовчуванням. Знову зв’яжіться зі своєю локальною системою, а потім має працювати


0

Якщо ви тільки що створили новий екземпляр і не можете з ним підключитися, мені вдалося вирішити проблему, припинивши цей і створивши новий. Звичайно, це спрацює лише в тому випадку, якщо це новий екземпляр і ви більше не зробили над ним роботи.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.