ServerAID
Найти гайд, команду, тег… ⌘ K
Сервер

Ubuntu Server в VirtualBox: создание виртуальной машины и настройка сети

Разворачиваем Ubuntu Server в VirtualBox для учёбы и тестов: параметры виртуальной машины, установка без графики, разбор сетевых режимов NAT и «сетевой мост», проброс порта для SSH с хоста и снапшоты, которые позволяют ломать систему без последствий.

Виртуальная машина — правильный способ учиться администрированию: сломать систему здесь не страшно, а откат к рабочему состоянию занимает секунды. Разбираем создание виртуалки с Ubuntu Server в VirtualBox, а главное — сетевые режимы, на которых чаще всего застревают, когда пытаются зайти на неё по SSH.

Готовим образ и хост

Скачиваем ISO Ubuntu Server с официального сайта и обязательно сверяем контрольную сумму — файл большой, а битая загрузка проявится уже на середине установки:

sha256sum ubuntu-24.04-live-server-amd64.iso

Хеш сравнивают с SHA256SUMS со страницы загрузки.

В BIOS/UEFI хоста должна быть включена аппаратная виртуализация: Intel VT-x или AMD-V. Без неё VirtualBox откажется запускать 64-битную гостевую систему. Проверить на Linux-хосте:

grep -Eoc '(vmx|svm)' /proc/cpuinfo

Ноль означает, что виртуализация выключена в прошивке либо не поддерживается. На Windows частая причина — включённый Hyper-V, который забирает аппаратную виртуализацию себе: VirtualBox тогда работает медленно или не стартует.

Создаём виртуальную машину

Параметры, с которых стоит начинать:

Параметр Значение Комментарий
Тип / версия Linux / Ubuntu (64-bit)
Память 2048 МБ Минимум 1024, для стенда с сервисами — 4096
Процессоры 2 Больше половины ядер хоста отдавать не стоит
Диск 25 ГБ, динамический Файл растёт по мере заполнения
Тип диска VDI Формат VirtualBox по умолчанию

Динамический диск занимает на хосте только фактически используемое место — для стенда это правильный выбор. Фиксированный чуть быстрее, но сразу резервирует весь объём.

Дальше подключаем ISO: «Настройки → Носители → Контроллер IDE → выбрать образ диска».

Полезно сразу отключить лишнее: аудио и USB-контроллер серверу не нужны и только тратят ресурсы.

То же самое из командной строки, если удобнее:

VBoxManage createvm --name ubuntu-server --ostype Ubuntu_64 --register
VBoxManage modifyvm ubuntu-server --memory 2048 --cpus 2 --audio-driver none --usb off
VBoxManage createmedium disk --filename ~/VMs/ubuntu-server.vdi --size 25600 --format VDI
VBoxManage storagectl ubuntu-server --name SATA --add sata --controller IntelAhci
VBoxManage storageattach ubuntu-server --storagectl SATA --port 0 --device 0 --type hdd --medium ~/VMs/ubuntu-server.vdi
VBoxManage storageattach ubuntu-server --storagectl SATA --port 1 --device 0 --type dvddrive --medium ~/iso/ubuntu-24.04-live-server-amd64.iso

Выбираем сетевой режим

Это ключевой момент, и именно здесь чаще всего возникают вопросы вида «виртуалка видит интернет, а я не могу к ней подключиться».

Режим Гость → интернет Хост → гость Гость виден в локальной сети
NAT да только через проброс портов нет
Сетевой мост да да да, со своим IP от роутера
Виртуальный адаптер хоста нет да нет
Внутренняя сеть нет нет нет, только между ВМ

NAT стоит по умолчанию. Гость выходит в интернет, но снаружи невидим — включая ваш собственный хост. Это безопасно и не требует настройки, но чтобы зайти по SSH, нужен проброс порта.

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

Внутренняя сеть пригодится, когда моделируете взаимодействие нескольких серверов между собой без выхода наружу.

Никто не мешает добавить два адаптера: первый NAT для интернета, второй — виртуальный адаптер хоста для доступа с хост-машины. Это классическая связка для лабораторий.

Проброс порта при NAT

Если оставляете NAT, добавьте правило: «Настройки → Сеть → Адаптер 1 → Дополнительно → Проброс портов».

Имя Протокол Порт хоста Порт гостя
ssh TCP 2222 22

Из командной строки:

VBoxManage modifyvm ubuntu-server --natpf1 "ssh,tcp,,2222,,22"

После этого подключение идёт на localhost хоста:

ssh -p 2222 user@127.0.0.1

Порт хоста берут нестандартный (2222), чтобы не конфликтовать с SSH самого хоста, если он запущен.

По той же схеме пробрасывают порты веб-сервера — например, http,tcp,,8080,,80, и сайт с виртуалки открывается на http://localhost:8080.

Ставим систему

Загрузка с ISO запускает обычный установщик Ubuntu Server. Полный разбор шагов инсталлятора — в статье про установку Ubuntu Server 24.04, здесь только отличия для виртуалки:

  • Разметка диска — соглашайтесь с автоматической разметкой всего диска. LVM в виртуалке полезен: позже можно расширить диск без переустановки.
  • OpenSSH — обязательно отметьте «Install OpenSSH server», иначе подключиться не получится и придётся ставить его через консоль VirtualBox.
  • Snap-пакеты на этапе установки не выбирайте: на стенде они не нужны, а места занимают заметно.

После установки извлеките ISO из виртуального привода, иначе машина снова загрузится в установщик:

VBoxManage storageattach ubuntu-server --storagectl SATA --port 1 --device 0 --type dvddrive --medium none

Первый вход — и дальше по чек-листу первых шагов.

Узнаём адрес виртуалки

В консоли гостя:

ip -4 a
hostname -I

При NAT адрес будет из сети 10.0.2.x — он локален для виртуалки и снаружи не маршрутизируется. При мосте — адрес из вашей домашней сети, например 192.168.1.х, и к нему можно подключаться напрямую:

ssh user@192.168.1.42

Если при мостовом режиме адрес не получен, проверьте, что в настройках адаптера выбран тот самый физический интерфейс хоста, через который у вас интернет — при переключении с Wi-Fi на кабель его нужно менять. Диагностика сети — в статьях про netplan и DNS.

Guest Additions: нужны ли серверу

Гостевые дополнения дают общие папки, буфер обмена и корректное время. Для сервера без графики польза ограничена, но общие папки бывают удобны.

sudo apt install -y build-essential dkms linux-headers-$(uname -r)

Затем «Устройства → Подключить образ диска Дополнений гостевой ОС» и:

sudo mount /dev/cdrom /mnt
sudo /mnt/VBoxLinuxAdditions.run
sudo reboot

Общая папка настраивается в параметрах ВМ, а в гостевой системе монтируется так:

sudo mkdir -p /mnt/share
sudo mount -t vboxsf share /mnt/share

Чтобы монтировалась автоматически, добавляют строку в /etc/fstab:

share /mnt/share vboxsf defaults,uid=1000,gid=1000 0 0

Пользователю нужно состоять в группе vboxsf: sudo usermod -aG vboxsf $USER. Про синтаксис записей — в статье про fstab.

Снапшоты — главная причина учиться на виртуалке

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

VBoxManage snapshot ubuntu-server take "clean-install" --description "Чистая система после установки"
VBoxManage snapshot ubuntu-server list
VBoxManage snapshot ubuntu-server restore "clean-install"

Разумная привычка — снимать снапшот перед каждым рискованным шагом: до rm -rf, до правки fstab, до обновления релиза. Если что-то сломается, откат займёт секунды, а разбор поломки останется добровольным упражнением, а не аварией.

Снапшоты занимают место на хосте и замедляют дисковые операции, когда их накапливается много, — старые лучше удалять.

Типовые проблемы

Виртуалка не стартует, ошибка про VT-x. Аппаратная виртуализация выключена в BIOS или занята другим гипервизором. На Windows проверьте, не включён ли Hyper-V (в том числе через WSL2 и «Изоляцию ядра») — он забирает VT-x себе.

Только 32-битные системы в списке ОС. Тот же признак: виртуализация недоступна.

Не подключается SSH при NAT. Проброс порта не настроен либо подключаетесь не туда: адрес — 127.0.0.1 на хосте и порт хоста (2222), а не адрес виртуалки.

Сеть работает, а имена не разрешаются. Проблема с DNS, а не с сетью: ping 1.1.1.1 пройдёт, ping ubuntu.com — нет. Смотрите resolvectl status.

Мало места на диске виртуалки. Диск расширяют на выключенной машине, затем внутри гостя увеличивают раздел и файловую систему:

VBoxManage modifymedium disk ~/VMs/ubuntu-server.vdi --resize 51200
sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv

Первая команда отдаёт логическому тому всё свободное место группы, вторая растягивает файловую систему. Про тома — в статье про LVM, про разделы — про lsblk.

Тормозит. Проверьте, что выделено минимум 2 ядра, включён PAE/NX и что снапшотов не накопилось десяток.

Частые вопросы

Сколько памяти и места выделять виртуалке с Ubuntu Server?

Для системы без графики достаточно 1–2 ГБ памяти и 25 ГБ диска. Если планируете разворачивать базу, веб-сервер и контейнеры одновременно — 4 ГБ памяти и 40 ГБ диска.

Диск выбирайте динамический: он занимает на хосте ровно столько, сколько реально заполнено внутри гостя.

Какой сетевой режим выбрать в VirtualBox?

Если нужно только чтобы виртуалка ходила в интернет — NAT, он стоит по умолчанию и безопасен. Если нужно подключаться к ней по SSH с хоста или других устройств — «Сетевой мост»: машина получит адрес от вашего роутера.

Компромисс для лаборатории — два адаптера: NAT для интернета плюс «виртуальный адаптер хоста» для доступа с хост-машины.

Как подключиться по SSH к виртуалке за NAT?

Настроить проброс портов: порт хоста 2222 → порт гостя 22. В командной строке это VBoxManage modifyvm имя --natpf1 "ssh,tcp,,2222,,22".

Затем подключаться на адрес самого хоста: ssh -p 2222 user@127.0.0.1. Обращаться к адресу виртуалки из сети 10.0.2.x бесполезно — он снаружи не маршрутизируется.

Нужно ли ставить Guest Additions на Ubuntu Server?

Не обязательно. Основная их польза — общие папки, буфер обмена и подстройка разрешения экрана, а серверу без графики нужны в лучшем случае общие папки.

Если папки не нужны, можно обойтись без них: обмен файлами с хостом проще организовать через scp или rsync — см. статью про копирование файлов.

Чем виртуалка отличается от реального сервера для обучения?

Всем, кроме железа: те же пакеты, те же конфиги, тот же systemd. Разница в том, что на виртуалке есть снапшоты — можно откатить любую ошибку за секунды.

Не тренируются на виртуалке только вещи, завязанные на физику: работа с RAID-контроллером, замена дисков, IPMI. Всё остальное переносится на боевой сервер один в один.

Что запомнить

  • Для 64-битного гостя нужна аппаратная виртуализация; на Windows её часто забирает включённый Hyper-V.
  • NAT изолирует виртуалку — для SSH с хоста нужен проброс порта; «Сетевой мост» даёт машине адрес от роутера и прямой доступ.
  • Отмечайте «Install OpenSSH server» в инсталляторе, иначе подключаться придётся через консоль VirtualBox.
  • После установки извлеките ISO из привода, иначе машина снова загрузится в установщик.
  • Снимайте снапшот перед каждым рискованным шагом — это главное преимущество стенда перед боевым сервером.

Похожие материалы

Сервер

Установка Webmin на Ubuntu Server: веб-панель управления и её безопасность

Webmin даёт браузерный интерфейс к настройкам сервера: пользователи, сервисы, фаервол, cron, диски. Ставим его из официального репозитория, закрываем доступ к порту 10000 и разбираем главное — панель работает с правами root, поэтому вопрос её защиты важнее вопроса установки.

Редакция
Сервер

Установка Zabbix на Ubuntu Server: сервер, PostgreSQL, веб-интерфейс и агент

Разворачиваем систему мониторинга Zabbix на Ubuntu Server 24.04: официальный репозиторий, база PostgreSQL, фронтенд на nginx, первый вход и подключение агентов. Отдельно — почему zabbix-server не стартует после установки и как читать его лог, когда мониторинг сам требует диагностики.

Редакция
Сервер

Что сделать после установки Ubuntu Server: чек-лист первых шагов

Инсталлятор отработал, вы вошли в систему — дальше идут пятнадцать минут, которые определяют, насколько удобно будет жить с этим сервером. Собрали чек-лист: имя хоста и часовой пояс, пользователи и sudo, автообновления безопасности, swap, синхронизация времени и проверка, что всё это применилось.

Редакция
Сервер

Графический интерфейс на Ubuntu Server: какую оболочку ставить и стоит ли

Ubuntu Server ставится без графики, но её можно добавить одной командой. Разбираем, чем отличаются варианты оболочек по потреблению памяти, как поставить лёгкий XFCE вместо полного GNOME, как включать графику только по требованию и почему на боевом сервере чаще правильнее обойтись веб-панелью или X11-форвардингом.

Редакция