Установка Ubuntu на VPS: пошаговая инструкция | AdminWiki

Установка Ubuntu на VPS: Полное руководство для разработчиков и DevOps

17 декабря 2025 12 мин. чтения #devops #linux #ssh #ubuntu #vps #безопасность #настройка сервера #сервер #установка ubuntu

Представь, что ты только что арендовал свой первый VPS. Чистый лист, полная свобода действий и... легкая паника: "С чего начать?" Давай разберем процесс установки Ubuntu на VPS от А до Я. Я буду твоим ментором и покажу каждый шаг — от выбора дистрибутива до настройки безопасного сервера, готового к работе.

Подготовка к установке Ubuntu на VPS

Перед тем как начать установку Ubuntu, нужно понять несколько ключевых моментов. VPS (Virtual Private Server) — это виртуальный сервер, который ты арендуешь у хостинг-провайдера. В отличие от shared-хостинга, здесь у тебя root-доступ и полный контроль.

Важно: Большинство современных хостинг-провайдеров предлагают предустановленные образы Ubuntu. Это самый быстрый способ начать работу. Мы рассмотрим оба варианта: установку из готового образа и ручную настройку.

Выбор версии Ubuntu для VPS

Для серверов выбирай поддерживаемую LTS (Long Term Support) версию с учётом совместимости приложения. Ниже — сроки стандартного обслуживания безопасности для перечисленных выпусков по данным Canonical на 16 октября 2026 года; это не полный список доступных LTS. Расширенная поддержка Ubuntu Pro учитывается отдельно.

Версия Кодовое имя Стандартная поддержка до Рекомендация
Ubuntu 22.04 LTS Jammy Jellyfish Май 2027 При необходимости совместимости
Ubuntu 24.04 LTS Noble Numbat Май 2029 Для новых проектов
Ubuntu 20.04 LTS Focal Fossa Май 2025 (завершена) Только с проверенным расширенным покрытием

Пошаговая установка Ubuntu на VPS

Давай пройдем весь путь от заказа VPS до полностью настроенного сервера. Я буду использовать DigitalOcean в качестве примера, но процесс аналогичен для Hetzner, Vultr, Linode и других провайдеров.

Шаг 1: Создание VPS с предустановленным Ubuntu

Самый простой способ — выбрать готовый образ Ubuntu при создании сервера:

Для такого развёртывания можно рассмотреть Timeweb Cloud (партнёрская ссылка). Перед созданием VPS проверь нужную версию Ubuntu, ресурсы и доступ к консоли восстановления.

  • Зайди в панель управления провайдера (DigitalOcean, Hetzner Cloud и т.д.)
  • Нажми "Create Droplet" (или аналогичную кнопку)
  • Выбери Ubuntu из списка дистрибутивов
  • Выбери поддерживаемую LTS-версию, совместимую с приложением (например, 24.04 LTS)
  • Выбери тарифный план (для начала хватит 1GB RAM, 1 vCPU)
  • Выбери регион дата-центра (ближе к твоей аудитории)
  • Добавь SSH ключи (об этом ниже)
  • Нажми "Create" и дождись готовности сервера в панели
Внимание: Всегда добавляй SSH ключи при создании сервера! Парольная аутентификация менее безопасна. Если забыл — придется настраивать позже.

Шаг 2: Первое подключение к VPS по SSH

После создания сервера ты получишь IP-адрес. Используй пользователя, указанного для образа провайдером: это может быть root или обычная учётная запись с sudo. Примеры ниже предполагают вход root; при обычном пользователе добавляй sudo к административным командам. Подключаемся:

bash
# Подключение к серверу
ssh root@ваш_ip_адрес

# Если используешь SSH ключ с нестандартным именем
ssh -i ~/.ssh/private_key root@ваш_ip_адрес

При первом подключении сверь fingerprint ключа хоста с панелью или консолью провайдера по независимому доверенному каналу. Подтверждай yes только при совпадении. Не игнорируй неожиданную смену ключа существующего сервера.

Шаг 3: Базовая настройка Ubuntu после установки

Сразу после входа выполни эти команды для обновления системы:

bash
# Обновляем список пакетов
apt update

# Обновляем установленные пакеты
apt upgrade -y

# Устанавливаем полезные утилиты
apt install -y \
  curl \
  wget \
  git \
  htop \
  nano \
  ufw \
  fail2ban \
  rsync \
  dnsutils

Шаг 4: Настройка безопасности сервера

Перед настройкой открой консоль восстановления провайдера и оставь рабочую SSH-сессию открытой. Ниже предполагается стандартный порт 22: если он другой, разреши фактический порт в UFW и внешнем firewall до включения фильтрации.

bash
# Настраиваем фаервол UFW
ufw allow OpenSSH
ufw allow 80/tcp    # HTTP
ufw allow 443/tcp   # HTTPS
ufw enable

# Проверяем статус
ufw status verbose
# Теперь из второго терминала проверь новое SSH-подключение.
# Если вход не работает, исправь правила из сохранённой сессии
# или временно отключи UFW через консоль: ufw disable

# Настраиваем Fail2Ban для защиты от bruteforce
systemctl enable fail2ban
systemctl start fail2ban

# Создаем пользователя без root-прав (рекомендуется)
adduser ваш_username
usermod -aG sudo ваш_username

# Переносим только разрешённые публичные ключи root, не приватные файлы
install -d -m 700 -o ваш_username -g ваш_username /home/ваш_username/.ssh
install -m 600 -o ваш_username -g ваш_username /root/.ssh/authorized_keys /home/ваш_username/.ssh/authorized_keys
# Если authorized_keys отсутствует, добавь свой публичный ключ вручную
# через текущую сессию; не продолжай с отключением входа до проверки.
Совет: Из второго терминала проверь вход нового пользователя именно по ключу: ssh -o PreferredAuthentications=publickey ваш_username@ваш_ip_адрес, затем sudo whoami. Отключать root-вход можно только после успеха; безопасный порядок изменения SSH приведён ниже.

Шаг 5: Настройка часового пояса и локали

bash
# Устанавливаем нужный часовой пояс (например, Europe/Moscow)
timedatectl set-timezone Europe/Moscow

# Проверяем текущее время
date

# Настраиваем локаль (язык системы)
apt install -y locales
locale-gen ru_RU.UTF-8
locale-gen en_US.UTF-8
update-locale LANG=en_US.UTF-8

Переустановка Ubuntu на существующий VPS

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

Метод 1: Готовый образ в панели провайдера

  1. Убедись, что выбран нужный VPS, и прочитай предупреждение о том, какие диски будут перезаписаны.
  2. Выбери поддерживаемый образ Ubuntu и добавь публичный SSH-ключ для новой системы.
  3. Запусти переустановку только после проверки внешнего бэкапа.
  4. После завершения сверь новый fingerprint через доверенный канал, проверь вход и восстанови данные.

Rescue mode нужен для восстановления и доступа к дискам, но сам по себе не устанавливает Ubuntu. Копирование файлов с ISO на смонтированный раздел не создаёт рабочую установленную систему. Используй процедуру переустановки конкретного провайдера, не угадывай имя диска вроде /dev/sda1.

Метод 2: Установка из ISO через консоль

Этот путь доступен, только если провайдер поддерживает загрузку ISO и удалённую консоль. IPMI обычно относится к физическому серверу; наличие виртуализации KVM само по себе не гарантирует загрузку собственного ISO.

  1. Подключи официальный ISO Ubuntu Server подходящей архитектуры через панель провайдера и загрузи установщик.
  2. Задай сеть и пользователя, установи OpenSSH Server и добавь публичный ключ.
  3. На этапе storage проверь выбранный диск и план разметки. Размеры разделов и swap определяются задачей; универсального правила «swap = 2 × RAM» нет.
  4. Подтверди запись только после проверки бэкапа. Дождись установки, отключи ISO и перезагрузи VPS.
  5. Проверь загрузку, сеть, fingerprint и новый SSH-вход, затем выполни базовую настройку из этой статьи.

Экраны установки описаны в официальном руководстве Ubuntu Server. Если провайдер не даёт ISO-консоль или готовый образ нужной системы, эта инструкция не заменяет его процедуру установки.

Оптимизация Ubuntu на VPS после установки

После базовой установки Ubuntu на VPS, давай настроим систему для максимальной производительности.

Настройка swap файла

Сначала проверь swapon --show, свободное место и отсутствие файла /swapfile. Следующий пример предназначен для нового файла на обычной ext4; не запускай его поверх существующего swap и не повторяй добавление в fstab. Для Btrfs и других файловых систем проверь их требования к swap-файлу. Значение swappiness подбирай по нагрузке; 10 не является универсальным оптимумом.

bash
# Создаем swap файл 2GB
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

# Делаем постоянным
echo '/swapfile none swap sw 0 0' >> /etc/fstab

# Пример swappiness; выбирай значение по измерениям нагрузки
echo 'vm.swappiness=10' >> /etc/sysctl.conf
sysctl -p

Настройка SSH без потери доступа

Оставим текущий SSH-порт: для ключевой аутентификации смена порта не нужна. Сначала проверь ключевой вход обычного пользователя и sudo в отдельном терминале, сохрани исходную сессию и доступ к консоли провайдера.

bash
# На сервере, из рабочей административной сессии
sudo cp -a /etc/ssh /root/ssh-before-hardening
sudo nano /etc/ssh/sshd_config

В глобальной части, до Match, задай параметры ниже. Учти Include и файлы sshd_config.d: обычно действует первое найденное значение. Не добавляй конфликтующие настройки в конец вслепую. Это пример для входа по ключам без MFA через keyboard-interactive:

PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
bash
sudo sshd -t
sudo sshd -T | grep -E '^(permitrootlogin|passwordauthentication|kbdinteractiveauthentication|pubkeyauthentication) '
# Только если проверка успешна и значения ожидаемые:
sudo systemctl reload ssh.service

# Из нового локального терминала:
ssh -o PreferredAuthentications=publickey ваш_username@ваш_ip_адрес
# В новом сеансе:
sudo whoami

При Match проверь эффективные настройки конкретного подключения через sshd -T -C. Если новая сессия не открывается, восстанови изменённые конфигурационные файлы из /root/ssh-before-hardening в прежней сессии, выполни sshd -t и reload ssh.service. Только после успешной проверки закрывай старое соединение.

Важно: Если отдельно решишь менять порт, сначала разреши новый порт в UFW и firewall провайдера. Сохраняй старый listener и правило до успешной проверки нового входа. На Ubuntu также проверь ssh.socket: при socket activation одного изменения Port может быть недостаточно. Эта базовая инструкция порт не меняет.

Установка и настройка Docker (опционально)

Docker нужен, если приложение развёртывается в контейнерах. Для production используй установку из официального apt-репозитория по инструкции Docker для Ubuntu. Приведённый ниже convenience script предназначен для тестового окружения: сначала изучи скрипт и выполни dry-run. Группа docker даёт полномочия уровня root; добавляй туда только доверенного администратора и переподключись после изменения группы.

bash
# Устанавливаем Docker
curl -fsSL https://get.docker.com -o get-docker.sh
# Изучи скачанный файл, затем посмотри план установки:
sh get-docker.sh --dry-run
# Только после проверки плана, на тестовом сервере:
sh get-docker.sh

# Добавляем пользователя в группу docker
usermod -aG docker ваш_username

# Устанавливаем Docker Compose
apt install -y docker-compose-plugin

# Проверяем установку
docker --version
docker compose version

Частые проблемы при установке Ubuntu на VPS

Проблема 1: Не могу подключиться по SSH после установки

Решение: Проверь:

  • Правильный ли IP-адрес
  • Добавлен ли твой SSH ключ в панели управления
  • Не блокирует ли фаервол на твоей стороне
  • Используй KVM консоль для диагностики

Проблема 2: Нет интернета после установки

Решение: Проверь настройки сети:

bash
# Проверяем сетевые интерфейсы
ip addr show

# Проверяем маршрутизацию
ip route show

# Проверяем DNS
cat /etc/resolv.conf
nslookup google.com

Автоматизация установки с помощью cloud-init

Для массового развертывания используй cloud-init на образе, который его поддерживает. Ниже шаблон для нового Ubuntu VPS со стандартным SSH-портом 22. Замени строку REPLACE_WITH_YOUR_PUBLIC_KEY полным публичным ключом; без этого вход admin не заработает. Проверь YAML командой cloud-init schema -c cloud-config.yaml и сначала испытай его на отдельном VPS с доступной консолью. После загрузки проверь cloud-init status --wait, новый SSH-вход и sudo. Разрешения firewall провайдера настраиваются отдельно.

yaml
#cloud-config
# Файл cloud-config.yaml: настройка при первой загрузке

users:
  - default
  - name: admin
    lock_passwd: true
    ssh_authorized_keys:
      - "REPLACE_WITH_YOUR_PUBLIC_KEY"
    sudo: ['ALL=(ALL) NOPASSWD:ALL']
    groups: sudo
    shell: /bin/bash

package_update: true
packages:
  - ufw
  - docker.io
  - nginx
  - fail2ban

runcmd:
  - [ufw, allow, 'OpenSSH']
  - [ufw, allow, '80/tcp']
  - [ufw, allow, '443/tcp']
  - [ufw, --force, enable]
  - [systemctl, enable, docker]
  - [systemctl, start, docker]

# Автоперезагрузка не нужна для этой демонстрации.
# Сначала проверь cloud-init status, SSH и sudo.

FAQ: Часто задаваемые вопросы

Какую версию Ubuntu выбрать для VPS?

Для production выбирай поддерживаемую LTS-версию с учётом приложения и образов провайдера. У Ubuntu 24.04 LTS стандартное обслуживание безопасности действует до мая 2029 года, у 22.04 LTS — до мая 2027 года. Перед установкой сверяй сроки и доступные более новые LTS с официальным жизненным циклом Ubuntu.

Нужно ли ставить графический интерфейс на VPS?

Нет! Серверный Ubuntu работает без GUI. Это экономит ресурсы и повышает безопасность. Все управление через SSH. Если нужен GUI, используй X2Go или VNC, но это не рекомендуется для production.

Как перенести данные со старого сервера?

Используй rsync для синхронизации файлов:

bash
rsync -avz -e ssh user@old_server:/path/ /path/on/new/server/

Как сделать бэкап перед установкой?

Если переустанавливаешь существующий сервер:

  • Экспортируй базы данных: mysqldump -u user -p database > backup.sql
  • Скопируй конфиги: /etc/nginx/, /etc/mysql/
  • Скопируй данные веб-сайтов
  • Сохрани список установленных пакетов: apt list --installed > packages.txt

Заключение

Установка Ubuntu на VPS — это только начало пути. После выполнения и проверки шагов у тебя будет базовая конфигурация; требования безопасности и ресурсов конкретного приложения нужно проверить отдельно. Помни главные правила:

  • Всегда обновляй систему: apt update && apt upgrade
  • Никогда не работай из-под root — создавай отдельных пользователей
  • Настрой мониторинг и уведомления о сбоях (например, Netdata и Telegram-бот)
  • Делай регулярные бэкапы (автоматизируй этот процесс)
  • Документируй все изменения в системе

Теперь у тебя есть мощный инструмент для разработки, тестирования и деплоя. Что развернешь первым? Docker-контейнеры, веб-сервер, базу данных или maybe целый Kubernetes кластер? Выбор за тобой!

Поделиться: