1. Проверка доступных обновлений
Перед установкой любых пакетов проверяется индекс репозиториев и список доступных обновлений.
Для Ubuntu / Debian:
# Обновление индекса пакетов
sudo apt update
# Вывод списка доступных обновлений
apt list --upgradable
Анализ списка пакетов: При выводе
apt list --upgradable обращайте особое внимание на 3 категории высокого риска:
- Ядро и системные библиотеки:
linux-image-generic,libc6(glibc),systemd. Требуют перезагрузки сервера. - Сетевые сервисы и безопасность:
openssh-server,nginx,openssl. Требуют перезапуска служб или сокетов. - Утилиты окружения:
python3,snapd,qemu-guest-agent.
Для RHEL / AlmaLinux / Rocky Linux:
sudo dnf check-update
2. Подготовка и обязательные чек-поинты
Перед выполнением команды обновления ответьте на 4 контрольных вопроса:
- Snapshot / Бэкап: Сделан ли снимок виртуальной машины (в Proxmox, VirtualBox, панели VPS) или бэкап конфигураций?
- Maintenance Window: Выполняется ли операция в согласованное окно обслуживания?
- Staging: Проверялись ли эти обновления на тестовом стенде?
- Резервирование (Rolling Update): Выведен ли сервер из балансировщика нагрузки (если работает в кластере)?
Создание бэкапа
- Через панель управления VPS / Гипервизор:
- Proxmox VE: VM -> Snapshots -> Take Snapshot.
- VirtualBox: VM -> Snapshots -> Take.
- Облачные панели (Hostpro / Virtualizor): Раздел List VPS -> Ваша VM -> Snapshots -> Create Snapshot (или раздел Резервні копії).
- Альтернатива (Быстрый бэкап конфигураций из консоли):
Если создание снимка в панели недоступно или зависает, сохраните критические конфигурации из терминала:sudo tar -czvf /tmp/etc_backup_$(date +%F).tar.gz /etc
3. Выполнение обновления
Для Ubuntu / Debian:
sudo apt upgrade -y
Важно: Используется apt upgrade, а не dist-upgrade / full-upgrade, чтобы случайно не удалить установленные зависимости без прямого указания.
При обновлении SSH-сервера может появиться диалоговое окно
Выбирайте
Configuring openssh-server относительно /etc/ssh/sshd_config:Выбирайте
keep the local version currently installed, чтобы сохранить существующие кастомные настройки доступа и безопасности (порт, запрет root-входа и т.д.). Новый дефолтный файл сохранится рядом как sshd_config.dpkg-dist.
Для RHEL / AlmaLinux:
sudo dnf upgrade -y
4. Пост-проверка и перезагрузка
- Проверка необходимости перезагрузки:
Если файл существует (cat /var/run/reboot-required*** System restart required ***), обновилось ядро (linux-image) или базовые библиотеки. Выполните перезагрузку:sudo reboot - Проверка зависших процессов (если reboot не требуется):
sudo needrestart # Для RHEL: sudo needs-restarting -s - Проверка статуса ключевых сервисов:
uname -r # Проверка версии ядра (например, 6.8.0-137-generic) systemctl status nginx # Веб-сервер systemctl status ssh # SSH-сервер
5. Устранение неполадок: Восстановление SSH-доступа после обновления
В Ubuntu 24.04 LTS служба SSH управляется через активацию по сокету (ssh.socket). Если после перезагрузки сервер выдает ошибку Connection refused на 22 порту:
Шаг 1. Вход через Emergency Console (VNC)
- Зайдите в панель управления хостингом (Virtualizor / Hostpro).
- Откройте VNC / Web Console и авторизуйтесь под своим пользователем.
Шаг 2. Диагностика и запуск служб SSH
Проверьте статус сокета и службы:
sudo systemctl status ssh.socket
sudo systemctl status ssh
Если службы отключены (disabled / inactive), включите их:
sudo systemctl unmask ssh
sudo systemctl enable --now ssh.socket
sudo systemctl enable --now ssh.service
Шаг 3. Проверка прослушиваемого порта
Проверьте, на каком порту зафиксировался SSH:
sudo ss -tulpn | grep ssh
- Если SSH перешел на кастомный порт (например, 2311):
Подключитесь с локального ПК с указанием порта:ssh Niko@185.67.2.242 -p 2311 - Возврат на стандартный порт 22:
- Проверьте параметр в конфигурации:
sudo grep -i "Port" /etc/ssh/sshd_config - Отредактируйте
/etc/ssh/sshd_config, установивPort 22:sudo nano /etc/ssh/sshd_config - Перезапустите сокет и службу:
sudo systemctl daemon-reload sudo systemctl restart ssh.socket sudo systemctl restart ssh
- Проверьте параметр в конфигурации:
Шаг 4. Контрольная проверка
Убедитесь, что SSH снова принимает соединения на порту 22:sudo ss -tulpn | grep ssh
# Вывод должен содержать: *:22 или [::]:22