Введение: Зачем устанавливать Ubuntu на VDS?
Представь, что тебе нужен надежный сервер для проекта — будь то веб-приложение, база данных или CI/CD пайплайн. Виртуальный выделенный сервер (VDS) с Ubuntu — это идеальная основа. Ubuntu Server — стабильная, хорошо документированная и имеет огромное сообщество. Давай разберем весь процесс от выбора хостинга до первой команды на свежеустановленной системе.
Подготовка: Выбор VDS и получение доступа
Критерии выбора VDS-провайдера
Перед установкой Ubuntu нужно выбрать хостинг. Один из вариантов для сравнения — Timeweb Cloud (партнёрская ссылка). Проверь нужный образ Ubuntu и способ восстановления доступа; возможность загрузки собственного ISO уточняй отдельно. Вот на что смотреть. Числа в таблице — стартовые ориентиры, а не гарантированные требования для production: CPU, память и диск подбирай по приложению и измеренной нагрузке.
| Параметр | Рекомендация | Примечание |
|---|---|---|
| ЦП (vCPU) | Минимум 1 ядро | Для тестов хватит, для прода — от 2 ядер |
| ОЗУ | От 1 ГБ | 2-4 ГБ для комфортной работы с Docker |
| SSD | От 20 ГБ | NVME SSD в приоритете |
| Трафик | Безлимит или от 1 ТБ | Важно для медиа и скачиваний |
| Панель управления | VNC/Web Console | Нужна для интерактивной ISO-установки и восстановления |
Получение данных для доступа
После заказа VDS ты получишь:
- IP-адрес сервера (например, 192.0.2.100)
- Доступ к консоли провайдера — способ входа зависит от панели и образа
- Учётную запись для SSH — root или обычного пользователя с sudo, ключ либо временный пароль согласно образу
Пошаговая установка Ubuntu на VDS
Шаг 1: Загрузка установщика через веб-консоль
Есть два разных сценария. Если провайдер предлагает готовый образ Ubuntu, выбери его в панели и добавь публичный SSH-ключ: после развёртывания переходи к первоначальной настройке. Следующие шаги 1–5 нужны для ручной установки из ISO.
Для ручной установки провайдер должен поддерживать подключение ISO и доступ к интерактивной консоли. Подключи официальный Ubuntu Server ISO подходящей архитектуры, открой консоль и загрузи установщик. Наличие VDS само по себе не гарантирует эти возможности; точные названия пунктов меню зависят от провайдера и версии ISO.
Шаг 2: Настройка установки в интерактивном режиме
Установщик проведет тебя через несколько экранов:
- Язык — English (или русский, но для сервера лучше English)
- Раскладка клавиатуры — Russian или US
- Сеть — Обычно DHCP настроен автоматически, проверь IP
- Прокси — Оставь пустым, если не используешь
- Mirror — Выбери ближайший (например, mirror.yandex.ru для РФ)
Шаг 3: Разметка диска (самое важное!)
На новом пустом VDS можно использовать предложенную установщиком разметку. Перед подтверждением проверь выбранный диск и изменения. Ручной пример ниже показывает только распределение данных: служебные загрузочные разделы EFI/BIOS зависят от режима загрузки и также должны быть предусмотрены.
# Пример распределения после служебных загрузочных разделов:
/ - основная часть диска, ext4
swap - по требованиям нагрузки, либо swap-файл
/home - отдельный раздел при необходимости
Шаг 4: Создание пользователя и настройка SSH
Создай пользователя с sudo правами (не используй root для ежедневной работы!):
Your name: devops
Server name: myserver
Username: devops
Password: [strong_password]
В разделе "SSH Setup" обязательно отметь:
- ✅ Install OpenSSH server
- При возможности добавь свой публичный SSH-ключ во время установки
- Если ключ пока не добавлен, временный парольный вход понадобится для его переноса; не отключай его до проверки ключа и sudo
Шаг 5: Завершение установки и перезагрузка
Дождись завершения установки, затем отключи ISO согласно панели провайдера и перезагрузи VDS. Войди в установленную систему под созданным пользователем; время установки зависит от ресурсов и сети.
Первоначальная настройка Ubuntu после установки
Подключение по SSH с локальной машины
Открой терминал на своём компьютере и подключись. При первом входе сверь fingerprint ключа хоста с консолью или другим доверенным каналом провайдера и подтверждай только при совпадении. Для ручной установки ниже используется созданный пользователь devops; для готового образа возьми имя из панели:
ssh devops@ваш_ip_адрес
# Введи пароль, который задал при установке
Базовое обновление системы
# Стань судо (sudo -i если нужна сессия root)
sudo apt update && sudo apt upgrade -y
# Установи полезные утилиты
sudo apt install -y \
htop \
nano \
curl \
wget \
git \
ufw \
fail2ban
Настройка безопасности: ключи SSH и фаервол
Если готовый образ дал только root-доступ, сначала создай обычного пользователя с sudo по инструкции Ubuntu или провайдера, добавь ему публичный ключ и проверь ключевой вход и sudo в отдельной сессии. Во всех примерах devops замени на фактическое имя этого пользователя. До успешной проверки не применяй PermitRootLogin no и не закрывай рабочую root-сессию.
1. Сгенерируй SSH ключ на локальной машине (если нет):
ssh-keygen -t ed25519 -C "ваш_email"
# Ключи появятся в ~/.ssh/id_ed25519 и ~/.ssh/id_ed25519.pub
2. Скопируй публичный ключ на сервер:
ssh-copy-id devops@ваш_ip_адрес
# Или вручную:
cat ~/.ssh/id_ed25519.pub | ssh devops@ваш_ip_адрес "umask 077; mkdir -p ~/.ssh; cat >> ~/.ssh/authorized_keys; chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys"
3. Сначала проверь ключевой вход и sudo в отдельном терминале, не закрывая текущую сессию:
ssh -o PreferredAuthentications=publickey -o PasswordAuthentication=no devops@ваш_ip_адрес
# В новой сессии:
sudo whoamiЕсли получен root, сохрани конфигурацию и открой файл. До окончания проверки держи доступ к консоли провайдера:
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
sudo sshd -t
sudo sshd -T | grep -E '^(permitrootlogin|passwordauthentication|kbdinteractiveauthentication|pubkeyauthentication) '
# Только при отсутствии ошибок и ожидаемых значениях:
sudo systemctl reload ssh.serviceПри Match проверь настройки конкретного подключения через sshd -T -C. Открой ещё одно ключевое SSH-соединение и проверь sudo. Если вход не работает, из сохранённой сессии восстанови изменённые файлы из /root/ssh-before-hardening, проверь sshd -t и повтори reload. Старую сессию закрывай только после успеха.
4. Настрой фаервол UFW:
# Пример для стандартного SSH-порта 22: сначала проверь фактический порт
# и разрешения firewall провайдера; другой SSH-порт разреши вместо 22.
sudo ufw allow 22/tcp
# Для будущего веб-сервера; профили Nginx/Apache ещё могут отсутствовать:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Включи firewall, сохраняя рабочую SSH-сессию и консоль
sudo ufw enable
sudo ufw status verbose
# Теперь проверь НОВОЕ SSH-подключение из отдельного терминала.
# При ошибке временно выполни sudo ufw disable из сохранённой
# сессии или консоли и исправь правила.
Оптимизация Ubuntu Server для VDS
Настройка swap (если не создавали при установке)
Сначала проверь swapon --show, свободное место и отсутствие /swapfile. Пример предназначен для нового файла на обычной ext4; не запускай mkswap поверх существующего swap и не повторяй запись в fstab. Для других файловых систем проверь их требования к swap-файлам. Swappiness подбирается по нагрузке; значение 10 — лишь пример.
# Создаем swap файл 2GB
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# Добавляем в fstab для автозагрузки
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
# Пример swappiness; выбери значение по измерениям своей нагрузки
sudo sysctl vm.swappiness=10
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
Установка и настройка Docker (опционально)
Если нужны контейнеры, установи Docker Engine из официального apt-репозитория по инструкции Docker для Ubuntu, затем выполни проверку ниже. Здесь используем sudo: группа docker даёт фактически root-доступ. Опубликованные контейнерами порты могут обходить правила UFW; ограничивай их отдельно, например firewall провайдера.
# После установки Docker из официального apt-репозитория:
sudo systemctl enable --now docker
sudo docker --version
sudo docker run hello-world
Частые проблемы и их решение
Проблема 1: Не могу подключиться по SSH после установки
Решение: Вернись в веб-консоль VDS и проверь:
- Служба sshd запущена:
sudo systemctl status ssh - Фаервол не блокирует порт 22:
sudo ufw status - В конфиге sshd разрешены подключения:
sudo nano /etc/ssh/sshd_config
Проблема 2: Мало места на диске
Решение: Сначала проверь свободное место и крупные каталоги. Очистка журналов удаляет старые записи: сохраняй нужные для расследований логи отдельно, а список удаляемых пакетов проверь до подтверждения.
# Очистка кэша apt
sudo apt clean
sudo apt autoremove
# Очистка журналов (старых)
sudo journalctl --vacuum-time=7d
# Покажи что занимает место
du -sh /var/* | sort -hr
Проблема 3: Сервер не обновляется
Решение: Прочитай ошибку apt update: проверь сеть, DNS, системное время и доступность настроенного репозитория. Не меняй все зеркала вслепую. В 22.04 обычно используется sources.list, в новых выпусках также встречаются файлы .sources; перед правкой сохрани копию именно используемого файла.
# Посмотри точный текст ошибки, не меняя репозитории
sudo apt update
# Проверь маршруты и время
ip route
timedatectl
# Найди используемые файлы источников
ls -l /etc/apt/sources.list /etc/apt/sources.list.d/
# Отсутствие sources.list допустимо, если используются файлы .sources.
Дальнейшие шаги после успешной установки
Теперь, когда у тебя работает Ubuntu на VDS, можно:
- Настроить мониторинг — установить Prometheus, Grafana или Netdata
- Развернуть веб-сервер — Nginx/Apache с PHP/Python/Node.js
- Настроить резервное копирование — используй rsync или BorgBackup
- Реализовать CI/CD — установи Jenkins, GitLab Runner или GitHub Actions runner
- Защитить сервер — настрой fail2ban, установи CrowdSec
sudo apt update && sudo apt upgrade -y и мониторить логи: sudo journalctl -f или tail -f /var/log/syslog.
Вопросы и ответы (FAQ)
Какую версию Ubuntu выбрать для VDS?
Выбирай поддерживаемую LTS с учётом совместимости приложения. У 22.04 LTS стандартное обслуживание безопасности действует до мая 2027 года, у 24.04 LTS — до мая 2029 года. Ubuntu 24.04 вышла в апреле 2024 года и уже не является только что выпущенной версией. Перед новой установкой сверяй доступные более новые LTS и сроки поддержки с Canonical.
Можно ли установить Ubuntu без веб-консоли?
Да, если провайдер развёртывает готовый образ Ubuntu автоматически. Это отличается от подключения ISO: интерактивному установщику нужен канал управления, например веб- или последовательная консоль. Без консоли ISO можно использовать только с заранее подготовленной автоматической установкой, если такой способ поддерживает провайдер. Просто загрузить ISO и перезагрузить VDS недостаточно.
Чем отличается Ubuntu Server от Desktop на VDS?
Ubuntu Server не имеет графического интерфейса (GUI), что экономит ресурсы. Весь управление через командную строку. Для VDS это идеально — больше ресурсов для твоих приложений.
Как перенести данные со старого сервера?
Используй rsync: rsync -avz user@old_server:/путь/ /локальный/путь/. Для баз данных сделай дамп (mysqldump/pg_dump) и восстанови на новом сервере.
Нужно ли покупать лицензию для Ubuntu на VDS?
Для обычной установки Ubuntu отдельная платная лицензия ОС не требуется. Но стоимость VDS, платные услуги провайдера и подписка Ubuntu Pro — отдельные вопросы; проверяй состав выбранного тарифа.
Заключение
Установка Ubuntu на VDS — это первый шаг к созданию собственной инфраструктуры. Ты научился выбирать хостинг, проходить установку через веб-консоль, настраивать безопасность и оптимизировать систему. Помни: самый опасный момент — это первый вход и настройка SSH. Всегда имей backup доступ (веб-консоль) пока не убедишься, что всё работает.
После проверки шагов у тебя будет базово настроенный сервер. Безопасность и ресурсы для конкретного проекта нужно оценивать отдельно. Отсюда начинается настоящее DevOps-приключение: контейнеризация, оркестрация, мониторинг и автоматизация. Удачи в освоении!