База знаний

Попасть внутрь, когда сеть недоступна

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

Что это

Аутентифицированный туннель к последовательной линии и виртуальному дисплею инстанса. Он включён в каждый тариф, не проходит через сетевой стек вашего инстанса и продолжает работать, когда sshd мертв, файрвол неправильный, маршрут по умолчанию отсутствует или корневая файловая система перешла в режим только для чтения. Сессии открываются из панели управления. Каждая из них — одноразовый доступ, истекает через несколько минут и требует второго фактора на вашем аккаунте.

Проверьте последовательную линию до того, как она понадобится

Большинство наших образов уже настроены правильно. Проверьте:

cat /proc/cmdline
systemctl status [email protected]

Вам нужен console=ttyS0,115200n8 в командной строке и запущенный getty. На Debian добавьте console=tty0 console=ttyS0,115200n8 в GRUB_CMDLINE_LINUX в /etc/default/grub, затем:

update-grub
systemctl enable --now [email protected]

В AlmaLinux 10 используются записи спецификации загрузчика, поэтому редактируйте их с помощью grubby, а не вручную:

grubby --update-kernel=ALL --args="console=tty0 console=ttyS0,115200n8"
systemctl enable --now [email protected]

Как получить shell, когда shell недоступен

Из консоли перезагрузите систему и прервите загрузчик. GRUB показывается несколько секунд; нажмите e на нужной записи и отредактируйте строку linux.

  • Службы остановлены, сеть недоступна, корень смонтирован: добавьте systemd.unit=rescue.target, затем Ctrl-X.
  • Если сам rescue не работает: systemd.unit=emergency.target.
  • Нет пароля и нет ключа: init=/bin/bash.
mount -o remount,rw /
passwd root
mount -o remount,ro /

С init=/bin/bash нет init, который можно остановить, поэтому перемонтируйте в режим только для чтения и перезагрузите из панели. Ввод reboot в этом приглашении не даст полезного результата.

Случай с файрволом

Блокировка себя с помощью nftables — самая частая причина, по которой открывается консольная сессия. Путь назад:

nft list ruleset
nft flush ruleset
systemctl restart sshd

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

systemd-run --on-active=120 nft flush ruleset
nft -f /etc/nftables.conf

Первая команда выводит созданный временный юнит. Если через две минуты вы всё ещё подключены, остановите этот таймер и сохраните правила. Если нет, он отменит их без вас.

Чтение неудачной загрузки

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

journalctl -b -1 -p err

Чем это не является

Это не спасательная система с собственной корневой файловой системой. Для этого загрузите rescue-образ из панели: небольшая live-среда, ваши диски не смонтированы и есть инструменты для их восстановления.

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

Готовы, когда вы готовы

Выберите город. Выберите размер. Оплатите монетой.

Никаких форм о том, кто вы, никакого ожидания одобрения человеком, никаких звонков для проверки. Счёт оплачен — и учётные данные приходят на почту.