Удаленное подключение к virtualbox

Опыт использования виртуализации на VirtualBox

Удаленное подключение к virtualbox
Несколько лет назад я начал разбираться с вируализацией, и у меня получились своего рода путевые заметки, которые я сейчас оформил и выкладываю сюда. Никаких откровений тут не будет, статья адресована начинающим админам. Задача которую я здесь решаю состоит в том, чтобы виртуализовать уже имеющиеся не виртуальные сервера на Linux и FreeBSD.

Причины, по которым я тогда выбрал VirtualBox

Причины представлены ниже:

  • Простота использования
  • Отличное руководство, подробно описывающее все аспекты работы VirtualBox
  • Наличие отличных графического, консольного и web-интерфейса
  • Возможность предоставления доступа к консоли гостевой ОС про протоколу RDP
  • Удобство использования

Полное руководство пользователя VirtualBox доступно на сайте производителя.

Причины, по которым я не выбрал бы его сейчас

  • Отсутствие хороших web-морд. Имеющийся web-интерфейс, несмотря на то, что он позволяет совершать с виртуальными машинами большинство требуемых действий (создание, снимки, удаление, создание виртуальных сетей), и реализован очень качественно, обладает следующими ограничениями:
    • Не позволяет назначать права на виртуальные машины (предоставления доступа разработчиками по списку только к своим машинам)
    • Не позволяет управлять несколькими физическими серверами из одной панели управления
    • Не отображает статистику по загрузке сервера
    • Пишется сторонними разработчиками, не имеющими отношения к VirtualBox, в их свободное время, из-за чего вызывает опасение возможность прекращения его развития
  • Более медленная работа при большом количестве запущенных виртуальных машин по сравнению с KVM.
  • Оговорка в лицензии

Подготовка ОС для работы с виртуальными машинами

VirtualBox можно установить практически на любую ОС, однако стабильная работа и все его возможности (например, RDP-подключение к консоли гостевой системы) доступны только на Линуксе, поэтому был выбран Debian Linux.

Для самого VirtualBox специальной настройки ОС не требуется, достаточно выделить отдельный раздел для хранения образов дисков гостевых систем и образов установочных дисков для чистой установки гостевых систем. Однако для управления VirtualBox через Веб-интерфейс (phpvirtualbox) требуется веб-сервер (выбран Apache 2) и PHP 5.

В Debian конфигурация по умолчанию PHP 5 и Apache 2 удовлетворяет требованиям phpvirtualbox, специальным образом настраивать ничего не нужно. Описание конфигурации сервера для виртуалок:

  • cервер имеет имя virtbox.site и адрес 10.0.0.7 (кстати, поищите почему не нужно использовать .local)
  • Раздел для хранения образов гостевых ос создан на отдельном жестком диске и примонтирован в /srv/vdi
  • Установлены пакеты Apache 2 и PHP 5: virtbox# apt-get install apache2 php5

Установка phpvirtualbox

Для Virtualbox существует бесплатный web-интерфейс, реализованный на PHP и использующий встроенную в virtualbox службу удаленного управления virtualbox web service. Устанавливаем phpvirtualbox:

1. На сайте разработчика смотрим последнюю версию и скачиваем ее на сервер:

virtbox# cd /var/www && wget phpvirtualbox.googlecode.com/files/phpvirtualbox-4.1-7.zip 2. Распаковываем:

virtbox# unzip phpvirtualbox-4.1-7.zip

3. Конфигурируем:

virtbox# cd phpvirtualbox-4.1-7.zip && cp config.php-example config.php && vim config.php

4. Прописываем адрес сервера, на котором работает VirtualBox, для удаленных подключений с помощью встроенного в VirtualBox RDP-plugin:

var $consoleHost = '10.0.0.7';

Внимание! Для успешных подключений на сервере должны быть открыты входящие порты, по умолчанию начиная с 3389 (TCP), по одному порту на гостевую систему. 5. Настраиваем virtualbox web service, для чего создаем файл /etc/vbox/vbox.cfg со следующим содержанием:

VBOXWEB_USER='vbox' VBOXWEB_HOST=127.0.0.1

VBOXWEB_LOGFILE=/srv/log/vboxwebservice

6. Запускаем virtualbox web service, перед этим нужно убедиться в том, что файл /srv/log/vboxwebservice доступен для чтения и записи пользователю vbox:

/etc/init.d/vboxweb-service start.

phpvirtualbox теперь доступен по адресу virtbox.site/phpvirtualbox.

Создание виртуальных машин

Создание виртуальных машины через web-интерфейс достаточно очевидно, нужно нажать в phpvirtualbox кнопку New и следовать инструкциям мастера. Ниже приводится выработанный опытным путем список настроек гостевых систем, достаточный для нормальной работы гостевых Linux и FreeBSD.

  1. System
    1. Base Memory: 512 MB
    2. Processor(s): 1
    3. Enable PAE/NX: NO — эмуляция поддержки работы с более чем 4 ГБ памяти для 32-битных систем как правило не нужна
    4. Chipset: PIIX3 — в руководстве ничего не сказано про зависимость быстродействия от типа эмулируемого чипсета, поэтому выбираем по умолчанию
    5. Extended features
      1. Enable IO APIC — без включенной эмуляции APIC некоторые клонированные сервера работать не будут
      2. Hardware clock in UTC time — как правило гостевые системы ожидают системное время в формате UTC, и эта опция отвечает за передачу гостевой ОС времени в UTC, а не в Local time сервера.
      3. Display: 2 MB — минимально возможное значение, при установке этого значения в 1 MB rdp-подключения работать не будут. При создании новых машин можно оставить значение по умолчанию, предлагаемое phpvirtualbox.
      4. Storage: где нужно создать образ диска
  2. Network
    1. Debian: Virtio — Debian с помощью гостевых расширений умеет понимать, что она работает в виртуальной машине, и использовать виртуальную сетевую карту, что дает очень большой выигрыш в производительности
    2. FreeBSD: Intep PRO/1000 MT Server network card — для FreeBSD гостевого драйвера сетевой карты нет, поэтому выбираем эмуляцию самой быстрой карты из доступных. Во FreeBSD устройство называется em0.
  3. Serial ports: Disabled
  4. USB: Disabled
  5. Shared Folders: None — возможность VirtualBox предоставлять доступ гостевой системе к файлам хост-системы как правило не нужна, проще воспользоваться scp или sftp

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

Управление через веб-интерфейс

Управление виртуальными машинами через web-интерфейс тривиально, достаточно выделить нужную машину в phpvirtualbox и выбрать в интерфейсе требуемое действие, например Start, Stop (безусловное выключение, отправка сигнала о нажатии кнопки выключения питания, перезагрузка, сохранение состояние гостевой системы с возможностью впоследствии откатить ее состояние и приостановка работы гостевой системы с сохранением ее памяти на диск и возможностью впоследствии загрузки памяти с диска и продолжения работы). По щелчку на гостевой системе правой кнопкой машины доступны операции ее настроек, удаления, просмотра логов и т.д. Также стоит отметить возможность подключения к консоли гостевой системы, что аналогично подключению к реальной машине мыши и клавиатуры. Для этого нужно выделить нужную гостевую систему, выбрать вкладку Console в phpvirtualbox, задать размер экрана (для текстовых режимов работы гостевых ОС достаточно 800х600), нажать Connect и щелкнуть мышью по клиенту удаленного подключения (в котором выводится содержимое консоли гостевой системы). Управлять гостевой системой можно с момента включения.

Управление через консоль

Для управления гостевыми система в VirtualBox используются утилиты VBoxManage и VBoxHeadless, подробное описание которых доступно в руководстве.

Запускать команды нужно от пользователя vbox, под которым работает сам VrtualBox, в случае запуска от другого пользователя или root VirtualBox не сможет найти файлы конфигурации виртуальных машин, которые хранятся в домашней директории пользователя Vbox, и выдаст ошибку. Для перехода под пользователя vbox нужно сказать:

su -s /bin/bash vbox

Оболочку нужно указывать явно, потому что по умолчанию у пользователя vbox стоит оболочка /bin/false. Ниже для примера приведены команды для включения, выключения и работы с образами дисков. 1. Запуск группы гостевых систем (можно сделать автоматическим при включении и перезагрузке сервера):

for M in test1 test2 test3 ; do VBoxManage startvm $M –type=headless ; sleep 30 ; done

Если не указывать sleep 30 некоторые машины могут не запуститься из-за очень интенсивного чтения с жесткого диска сервера при запуске и некоторые гостевые системы решат, что у них ошибка чтения с жесткого диска. 2. Выключение группы гостевых систем (можно сделать автоматическим при включении и перезагрузке сервера):

for M in test1 test2 test3 ; do VBoxManage controlvm $M acpipowerbutton ; sleep 30 ; done

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

VBoxManage createhd –variant Fixed –size 20000 –format vdi –filename test

4. Преобразование образа диска из формата VirtualBox в формат, понятный другим виртуальным машинам:

VBoxManage internalcommands converttoraw test1.vdi test1.raw

Подключение через RDP

К консоли виртуальных машин можно подключиться через RDP. В Windows нужно открыть Пуск->Все программы->Стандартные->Подключение к удаленному рабочему столу и указать адрес virtbox.test и порт, сопоставленный конкретной гостевой системе, который можно посмотреть в phpvirtualbox.

Для удобства использования в параметрах подключения можно указать разрешение экрана 1024х768, тогда окно с подключением не будет занимать весь экран и перехватывать системные сочетания клавиш, такие как Alt+Tab.

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

Для включения этой настройки нужно в настройках виртуальной машины в phpvirtualbox в разделе Display на вкладке Remote Display установить галочку Allow Multiple Connections.

Создание снимков гостевых систем

Снимки дают возможность сохранения состояния гостевых систем и возврата к этому состоянию по требованию.

Что это означает на практике?

  • Можно попробовать различные запросы к базе данных на гостевой системе с возможностью после каждого запроса восстанавливать начальное системы
  • Можно попробовать различные конфигурации взаимодействия сервисов на гостевой системе без необходимости вручную откатывать изменения во многих конфигурационных файлах в случае получения нерабочей системы
  • И наконец это иногда удобный инструмент создания резервных копий, который позволяет сделать полный снимок рабочей машины и восстановить ее полностью за минимальное количество административных действий. Внимание! Не делайте этого с продукционными машинами.

При создании снимка гостевой системы занимаемое ею место на диске фактически не увеличивается, дополнительный объем будут занимать только измененные по сравнению с уже существовавшим образом диска гостевой машины данные. Например, если будет изменен файл /etc/rc.conf, измененная копия будет записана отдельно.

Для создания снимка через phpvirtualbox нужно:

  • Выделить гостевую систему, с которой нужно сделать снимок
  • Перейти на вкладку «Snapshots»
  • Нажать кнопку «Take Snapshot» (с изображением фотоаппарата)

Источник: https://habr.com/ru/post/142963/

Как удалённо подключиться к виртуальной машине по RDP и SSH

Удаленное подключение к virtualbox

Как подключиться к виртуальной машине в VMware vCloud Director? Сначала нужно настроить доступ к ней через механизм NAT. Он преобразовывает скрытые локальные IP-адреса сети во внешние.

Настройка доступа к виртуальной машине зависит от того, какую операционную систему вы на неё установили:

  • для операционных систем Windows нужно настроить доступ по RDP;

  • для ОС Linux нужен доступ по SSH.

Настройка доступа к виртуальной машине по RDP

Для настройки доступа по RDP (Remote Desktop Protocol) нужно открыть порт 3389 через NAT.

  1. 1. Войдите в панель управления виртуальным дата-центром vCloud Director по инструкции.
  2. 2.

    В разделе Datacenters выберите нужный виртуальный дата-центр и кликните на него.

  3. 3.

    Во вкладке Edges выберите нужный Edge и кликните на него. После этого нажмите Configure Services, чтобы приступить к настройке.

  4. 4.

    В появившемся окне Edge Gateway добавьте DNAT-правило. Нажмите на + DNAT Rule.

  5. 5.

    В появившемся окне введите данные для настройки доступа:

    • Applied On — выберите внешнюю сеть.

    • Original IP/Range — внешний IP-адрес или диапазон IP-адресов.

    Как найти внешний IP-адрес?

    Во вкладке Edges выберите нужный Edge. Внизу появятся настройки шлюза Edge Gateway. Выберите любой адрес из диапазона Sub-allocated IP Pool.

    • Protocol — выберите протокол TCP.

    • Original Port — выберите порт TCP 3389.

    • Translated IP/Range — внутренний IP-адрес или диапазон адресов виртуальных машин. Например, 192.168.100.0.

    • Translated Port — выберите порт TCP 3389.

    После ввода настроек нажмите Keep.

  6. 6.

    Добавленное правило появится в списке NAT44 Rules.

Готово, доступ к виртуальной машине по RDP настроен.

Удалённое подключение к виртуальной машине с ОС Windows

Как удалённо подключиться к виртуальной машине с операционной системой Windows:

  1. 1.

    Подключитесь к ВМ. По RDP загрузка виртуальной машины осуществляется через консоль по инструкции. Введите логин и создайте пароль администратора.

    Виртуальная машина должна быть включена (статус Powered On).

  2. 2. Откройте удалённый рабочий стол виртуальной машины. Для этого запустите терминал Windows «Подключение к удаленному рабочему столу». Введите внешний IP-адрес из диапазона Sub-allocated IP Pool. Для входа используйте логин и пароль администратора.

Готово, вы настроили удалённый доступ к виртуальной машине с ОС Windows.

Настройка доступа к виртуальной машине по SSH

Для настройки доступа по SSH (Secure Shell) нужно открыть порт 22 через NAT.

  1. 1. Войдите в панель управления виртуальным дата-центром vCloud Director по инструкции.
  2. 2.

    В разделе Datacenters выберите нужный виртуальный дата-центр и кликните на него.

  3. 3.

    Во вкладке Edges выберите нужный Edge и кликните на него. После этого нажмите Configure Services, чтобы приступить к настройке.

  4. 4.

    В появившемся окне Edge Gateway добавьте DNAT-правило. Нажмите на + DNAT Rule.

  5. 5.

    В появившемся окне введите данные для настройки доступа:

    • Applied On — выберите внешнюю сеть.

    • Original IP/Range — внешний IP-адрес или диапазон IP-адресов.

    Как найти внешний IP-адрес

    Во вкладке Edges выберите нужный Edge. Внизу появятся настройки шлюза Edge Gateway. Выберите любой адрес из диапазона Sub-allocated IP Pool.

    • Protocol — выберите протокол TCP.

    • Original Port — выберите порт TCP 22.

    • Translated IP/Range — внутренний IP-адрес или диапазон адресов виртуальных машин. Например, 192.168.100.0.

    • Translated Port — выберите порт TCP 22.

    После ввода настроек нажмите Keep.

  6. 6.

    Добавленное правило появится в списке NAT44 Rules.

Готово, доступ к виртуальной машине по SSH настроен.

Удалённое подключение к виртуальной машине с ОС Linux

В VMware удалённое подключение к виртуальной машине с операционной системой Linux можно настроить так:

  1. 1.

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

  2. 2.

    Подключитесь к ВМ по SSH по инструкции, используя логин root и пароль.

    Виртуальная машина должна быть включена (статус Powered On).

Готово, вы удалённо подключились к виртуальной машине с ОС Linux.

Виртуальный дата-центр VMware

Гибкое решение для создания собственного виртуального дата-центра.

Подробнее Помогла ли вам статья?

Источник: https://www.REG.ru/support/vydelennyye-servery-i-dts/virtualnyj-datatsentr-vmware/sozdanie-i-nastrojka-virtualnyh-mashin/kak-udalenno-podkljuchitsja-k-virtualnoj-mashine-po-rdp-i-ssh

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.