Com порт virtualbox: Проброс портов VirtualBox | Losst

Содержание

Проброс портов VirtualBox | Losst

VirtualBox — одна из самых популярных сред виртуализации, которые используются для запуска различных операционных систем. И довольно часто случается ситуация, что вам необходимо получить доступ к какому-либо сервису гостевой системы из основной, например, веб-серверу или ssh. Но по умолчанию сетевые интерфейсы изолированы и такой возможности нет.

Для решения этой задачи можно пойти двумя путями. Мы можем пробросить необходимый порт виртуальной машины в основную систему или же выдать виртуальной машине отдельный IP адрес, что позволит обращаться к любым ее портам и использовать любые сетевые возможности. В этой небольшой статье мы рассмотрим проброс портов virtualbox двумя способами. Начнем с более простого.

Содержание статьи:

Проброс портов в VirtualBox

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

Но если вам нужно получить доступ к какому-либо сервису гостевой машины, то можно пробросить порт этого сервиса в основную систему. Так работают порты VirtualBox. Для этого откройте контекстное меню для машины и нажмите «Настройки»:

Затем перейдите на вкладку «Сеть», а потом разверните строчку «Дополнительно»:

Тут вам нужно нажать кнопку «Проброс портов»:

Дальше нажмите кнопку с зеленым значком «+». Тут нужно заполнить несколько полей:

  • Имя — любое имя, по которому вы сможете понять с чем имеете дело;
  • Протокол — протокол, по которому работает сервис, например, tcp;
  • Адрес хоста — адрес на основной машине, подключения к которому будут направляться на виртуальную машину, можно написать 127.0.0.1 или ip в локальной сети;
  • Порт хоста — порт, подключения к которому нужно перенаправлять на гостя;
  • Адрес гостя — на который нужно направлять подключения, оставьте пустым;
  • Порт гостя — порт, на который будут перенаправлены подключения с этого порта.

Адрес хоста в локальной сети можно узнать так:

ifconfig

 

Еще один важный момент, что порт с которого вы перенаправляете и на который перенаправляете не должны совпадать. Странное дело, но если перенаправлять с порта 80 на 80, то работать все это не будет. Нужно использовать 8080 на 80. Тогда все в порядке. Если вы не любитель много кликать, что можно воспользоваться командной терминала:

VBoxManage modifyvm "Имя машины" --natpf1 "rulename,tcp,127.0.0.1,8080,,80"

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

Проброс портов virtualbox nat работает.

Виртуальный адаптер хоста VirtualBox

Еще один способ получить доступ к виртуальной машине извне — использовать виртуальный адаптер хоста. Тут вы можете настроить все более подробно, а также получить отдельный ip для машины, что дает больше возможностей. Сначала нужно создать виртуальный адаптер. Для этого откройте меню «Файл», затем «Настройки»:

Тут нужно перейти на вкладку «Сеть», затем «Виртуальные адаптеры»:

Дальше нажмите кнопку «+», чтобы в списке появился пункт vboxnet0. Тут готово, нажмите несколько раз «Ok» чтобы закрыть это окно. Дальше откройте контекстное меню вашей виртуальной машины, потом

«Настроить», а затем «Сеть»:

 

Тут вам нужно в выпадающем списке заменить «NAT» на «Виртуальный адаптер хоста». В поле имя, выберите «vboxnet0»:

Теперь можете запускать виртуальную машину и смотреть ее ip адрес:

 

По нему гостевая система будет доступной из внешней. Внешняя система теперь тоже полностью доступна из гостевой по адресу 192.168.56.1:

Выводы

В этой небольшой статье мы рассмотрели как выполняется проброс портов VirtualBox, это может быть очень полезным, если вы часто работаете с виртуальными машинами. Если у вас остались вопросы, спрашивайте в комментариях!

Оцените статью:

Загрузка…

[Решено] USB-COM устройство и Virtualbox.

? LiveJournal
  • Main
  • Ratings
  • Interesting
  • iOS & Android
  • Disable ads
Login

3.7. Настройка виртуальной машины

3.7. Настройка виртуальной машины

Большинство из описанных ниже свойств, доступны в главном окне настроек, которое вызывается нажатием кнопки «Settings\Свойства» . Для упрощения пользовательского интерфейса, нечасто используемые параметры не содержатся в окне настроек. Однако они доступны через VBoxManageи будут подробно описаны позже в Глава 8, Описание VBoxManage .

3.7.1. Основные настройки

В окне настроек на вкладке «General», вы можете настроить основные свойства виртуальной машины, такие как память и необходимые аппаратные средства. Существует четыре вкладки : «Основные», «Дополнительно», «Описание» и «Прочее».

3.7.1.1. Вкладка «Основные»

На вкладке «Основные» , вы можете увидеть настройки:

Имя

Имя под которым ВМ показывается в списке виртуальных машин главного окна. Под этим именем, VirtualBox также сохраняет файл настроек ВМ. При изменении имени, VirtualBox изменяет также имя файла. В результате, вы можете использовать только символы которые используются в вашей ОС для наименования файлов.

Заметьте что, VirtualBox использует уникальный идентификатор (UUIDs) для внутренней идентификации виртуальных машин. Вы можете также отобразить его с помощью VBoxManage .

Операционная система

Тип гостевой ОС которая установлена (или будет) в ВМ. Это то же свойство которое указывалось в мастере создания новой ВМ, который описывался ранее в Раздел 3.2, “Создание виртуальной машины” .

Размер основной памяти (RAM)

Размер RAM который будет зарезервирован и доступен ВМ при ее работе. Указанный размер памяти будет взят у операционной системы хоста (from resident memory so it must be available or made available as free memory on the host when attempting to start the VM and will not be available to the host while the VM is running). Этот параметр также вводился в мастере создания ВМ , см. Раздел 3.2, “Создание виртуальной машины”.

Обычно, возможно изменить размер памяти после установки гостевой ОС (при условии что вы не уменьшите размер менее, чем требуется для ее загрузки).

Замечание

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

Размер видео памяти

Размер памяти предоставляемой виртуальной графической карте в мегабайтах. Как и в случае с основной памятью, эта память будет выделена из основной памяти хоста. Размер видеопамяти влияет на доступные разрешения и глубину цветов, но в большинстве случаях, будет достаточно памяти указанной по умолчанию 8MB.

Включить 3D ускорение

Если для виртуальной машины установлены гостевые дополнения, вы можете указать зедесь, должен ли гость поддерживать аппаратное 3D графики. Ознакомтесь с деталями в Раздел 4.8, “Аппаратной 3D ускорение (OpenGL)”.

3.7.1.2. Вкладка «Дополнительно»
Порядок загрузки

Данная настройка определяет порядок виртуальных устройств, в котором ВМ будет пытаться загрузить гостевую ОС. Аналогично настроек BIOS реального компьютера , VirtualBox может указать для гостевой ОС, что необходимо загрузиться с виртуальной дискеты, CD/DVD , жесткого диска, сети или вообще ничего не указать.

Если вы укажите «Сеть», ВМ будет пытаться загрузиться по сети используя механизм PXE. Параметры сетевой загрузки можно настроить с помощью командной строки; см. Раздел 8.5, “VBoxManage modifyvm” .

Включить ACPI

VirtualBox может предоставлять гостевой системе функции интерфейса управления питанием (ACPI) . В добавок, через ACPI, VirtualBox может посылать информацию гостю о состоянии питания хоста.

ACPI является современным стандартом для операционных систем по управлению питанием аппаратных устройств компьютера. Все современные компьютеры уже давно поддерживают этот стандарт, как с Windows так и с Linux, поэтому функция включается в VirtualBox по умолчанию.

Предупреждение

Во всех ОС Windows, начиная с Windows 2000, устанавливаются различные ядра в зависимости от наличия ACPI, поэтому ACPI

не должн быть отключен после установки гостевой операционной системы Windows . Включение этой опции после установки не будет иметь никакого эффекта.

Включить I/O APIC

Улучшенный контроллер прерываний ввода/вывода(APICs) является новой аппаратной функцией на платформе x86, которая заменила устаревший контролер прерываний (PICs) . С I/O APIC, операционные системы могут использовать более чем 16 запросов прерываний (IRQs), что позволяет избежать совместное использование одного канала IRQ несколькими устройствами.

Замечание

Включение I/O APIC требуется для 64-bit гостей, особенно для Windows Vista.

Как бы то ни было, программная поддержка I/O APICs является ненадежной в ОС отличных от Windows. Также, использование I/O APIC увеличивает нагрузку на систему виртуализации, что приводит к замедлению работы гостевой ОС.

Предупреждение

Во всех ОС Windows, начиная с Windows 2000, устанавливаются различные ядра в зависимости от наличия I/O APIC. Как и с ACPI, I/O APIC также не должна отключаться после установки гостевой ОС Windows. Включение этой опции после установки не будет иметь никакого эффекта.

Включить VT-x/AMD-V

Эта настройка определяет, будет ли система виртуализации пытаться использовать расширения аппаратной виртуализации процессора. См. Раздел 1.2, “Программная и. аппаратная виртуализация (VT-x and AMD-V)”. Для 64-bit гостей и других «экзотических» систем, таких как OS/2, эта настройка должна быть включена. Начиная с версии VirtualBox 2.2, эта опция включена по умолчанию при создании новых ВМ.

Nested paging не включается автоматически когда вы включаете аппаратную виртуализацию; вы должны включить ее отдельно.


VBoxManage modifyvm <vmname> --nestedpaging on

Замечание

Вы можете комбинировать программную и аппаратную виртуализацию при запуске ескольких ВМ. В некоторых случаях это может приводить к потери производительности. Мы рекомендуем не смешивать режимы виртуализации ,если максимальная производительность имеет важное значение. Эта рекомендация не применима к AMD-V.

Включить PAE/NX

Эта настройка определяет, будет ли виртуальная машина использовать PAE и NX. PAE расшифровывается как «Расширение физических адресов». Обычно когда эта опция включена и поддерживается операционной системой то даже на 32-bit x86 CPU возможен доступ к более чем 4 GB памяти. Это возможно вследствии добавления еще 4 bits к обычной 36 bits шине адресации памяти и позволяет использовать память до 64 GB.

Некоторым ОС (например Ubuntu Server) требуется установка PAE и без нее запуск виртуальной машины не возможен. Эта настройка не влияет на размер выделяемой памяти в виртуальной машине.

Общий буфер обмена

Если для ВМ установлены гостевые дополнения, вы можете выбрать здесь режим работы буфера обмена между гостем и хостом. Если выбрано «Двунаправленный», то VirtualBox всегда устанавливает одинаковое содержимое буфера для обоих систем. Если выбрано «Из основной в гостевую ОС» или «Из гостевой в основную ОС «, то буфер обмена будет содержать данные только одной системы.

контроллер IDE

Здесь вы можете выбрать какой тип контроллера IDE будет предоставляться гостю. Обычно данную настройку не требуется изменять; однако , если вы импортируете образы дисков которые созданы в другой системе виртуализации, гостевой ОС может потребоваться другой и если он не будет указан — завершаться с ошибкой. This is why VirtualBox allows you to modify this setting here.

Папка снимков системы

По умолчанию, VirtualBox сохраняет снимки всегда вместе с другими конфигурационными данными ; см. Section 9.1, “Конфигурационные данные VirtualBox” . Здесь вы можете указать другой каталог для каждой ВМ.

3.7.1.3. Вкладка «Описание»

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

3.7.1.4. Прочие настройки
Запоминать установленные сменные носители

Если установлен флаг, VirtualBox будет сохранять состояния сменных носителей которые были подключены во время работы ВМ.

Настройка заставки BIOS

По умолчанию , когда запускается виртуальная машинва, VirtualBox отображает заставку VirtualBox. С помощью VBoxManage , вы можете изменить ее по вашему вкусу. Эта опция может быть настроена только с помощью VBoxManage ; см. Раздел 8.5, “VBoxManage modifyvm” .

3.7.2. Жесткие диски

В окне настройки ВМ, на вкладке «Жесткие диски» можно подключить образы виртуальных жестких дисков к вашей ВМ:

Как и на реальном ПК, VirtualBox по умолчанию по умолчанию предоставляет два контроллера IDE , оба с точками подключения «master» и «slave». Одно из четырех подключение зарезервировано для устройства CD-ROM/DVD (см. ниже), оставляя вам три подключения для жестких дисков, которые представляют собой файлы образов.

Настройка первого диска («Primary Master») производится в мастере «Создание ВМ». Как правило данная настройка сохраняется все время для ВМ. Однако вы можете свободно удалять, добавлять и менять эти настройки для виртуальных жестких дисков после создания ВМ. Например, если вы захотите скопировать какие либо файлы с другого виртуального диска, вы можете подключить этот диск как втрой жесткий диск.

Для подключения дополнительного диска, дважды кликнете на пустом месте в списке виртуальных дисков , или кликните на соответствующей иконке справа от списка. Вы можете выбрать куда подключить виртуальный диск (первичный master или вторичный slave) и какой образ использовать. Если вы кликнете на иконке «Выбрать жесткий диск» справа, то запустится менеджер виртуальных носителей (см. Раздел 3.5, “Менеджер виртуальных носителей” ), где вы можете выбирать другой образ.

Для удаления виртуального диска, кликнете на иконке «Отсоединить носитель» .

В дополнение к IDE контроллеру, VirtualBox также предоставляет гостю SATA контроллер ; однако, для его поддержки требуется современная гостевая ОС. За подробностями обращайтесь к Раздел 5.1, «Контроллеры жестких дисков: IDE, SATA (AHCI), SCSI.

В руководстве пользователя виртуальным носителям посвящена отдельная глава: см. Глава 5, Виртуальные носители .

3.7.3. Настройка CD/DVD-ROM и дисковода гибких дисков

В окне настроек ВМ, эти две настройки предназначены для определения используемых в дискет и CD/DVD-ROM в гостевой ОС.

В обоих вкладках, если флажок «Подключить» сброшен, VirtualBox информирует гостя о том, что привод пуст. Иначе, если флажок «Подключить» установлен, становятся доступны следующие опции:

  • Физический привод : Физическое устройство хоста предоставляется ВМ, и гость может на него писать и читать с него. Это удобно, например, если вы хотите установить Windows с реального установочного CD. В этом случае выберите привод в выпадающем списке.

  • Файл образа: Подобно виртуальным жестким дискам, представляет файл на диске хоста как устройство гостевой ОС. Для использования файла образа, вам необходимо его импортировать в менеджере виртуальных носителей; см. Раздел 3.5, “Менеджер виртуальных носителей” . Формат файлов образов зависит от типа устройства:

    • Для дискет, файл должен быть в формате raw.

    • Для CD- и DVD-ROMs в формате ISO . Чаще всего, вы будете выбирать эту опцию при установке ОС из образа ISO , скаченного из интернета. Например, дистрибутивы Linux обычно распространяются в таком формате.

Все эти настройки могут быть изменены в работающей гостевой системе. Так как диалог «Свойства» не доступен в этом режиме, вы можете получить доступ к этим настройкам через пункт меню «Устройства» в окне виртуальной машины.

Замечание

Наименование устройства предоставляемого гостю (которое в гостевой системе будет отображаться в утилитах настроек таких как Windows Device Manager) будет всегда «VBOX CD-ROM», независимо от текущей настройки виртуального привода. Это сделано для того, чтобы исключить срабатывания механизма поиска новых устройств в госте при изменении настроек ВМ.

К устройству хоста гостю, обычно, предоставляется доступ только на чтение. Гостю можно дать право на запись (но только данных, аудио не работает) CD/DVD хоста, но данная функция имеет статус экспериментальной:


VBoxManage modifyvm <vmname> --dvdpassthrough on

См. также Раздел 8.5, “VBoxManage modifyvm” .

Данная опция не допускает использование всех реальных возможностей устройства. Потенциально опасные команды блокируются (такие как обновления прошивки).

3.7.4. Настройки звука

Раздел «Аудио» окна настроек виртуальной машины определяет какие из ВМ будут видеть подключенные звуковые устройства и должен ли ауди выход прослушиваться хост системой.

Если ауди включено в госте, вы можете выбрать между эмуляцией контроллером Intel AC’97 и SoundBlaster 16 card. В любом случае, вы можете выбрать какой ауди драйвер VirtualBox будет использоваться на хосте.

На хосте host, в зависимости от настроек системы, вы можете выбрать между подсистемами OSS, ALSA или PulseAudio. В современных дистрибутивах Linux (Fedora8 and above, Ubuntu 8.04 and above) звуковая подсистема PulseAudio более предпочтительна.

3.7.5. Настройка сети

В разделе «Сеть» в окне настроек ВМ настраиваются какие сетевые карты VirtualBox будут доступны и как они будут функционировать.

Когда вы впервые создаете виртуальную машину, VirtualBox подключает одну виртуальную сетевую карту с настройкой по умолчанию «Network Address Translation» (NAT) . Этот режим позволяет гостю подключиться к внешней сети используя сеть хост системы и к устройствам внешней сети подключаться к сервисам гостя, которые вы сделаете доступными.

Замечание

При установке Windows Vista в виртуальной машине, вероятнее всего, сеть не будет доступна. См. Раздел 4.2.5, “Сеть Windows Vista” , чтобы решить эту проблему.

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

VirtualBox является гибким в настройке виртуальных сетей. Поддерживается до восьми сетевых устройств на каждую ВМ, четыре из которых настраиваются в графическом интерфейсе пользователя. Все восемь сетевых карт могут быть настроены в командной строке с помощью VBoxManage. В данном руководстве настройке сетевых устройств посвящена целая глава ; см. Глава 6, Виртуальная сеть .

VirtualBox имеет удобную для использования полную поддержку СОМ портов в виртуальных машинах. [ 9 ]

Начиная с первого IBM PC, персональные компьютеры были оснащены одним или двумя последовательными портами (также называемые COM портами в DOS и Windows). Сейчас они уже не так важны, как еще несколько лет назад (особенно после того как мышь не нужно подключать к последовательному порту), однако существует важные задачи с их использованием. Например, последовательные порты могут использоваться для построения простых сетей на null-modem кабеле, в случае если Ethernet не доступен. Также, без последовательных портов не обойтись в системном программировании, требующем отладки ядра — обычно отладочное программное обеспечение ядра взаимодействует с разработчиком с помощью последовательного порта Другими словами, с виртуальными последовательными портами, системные программисты могут отлаживать ядро виртуальных машин.

Если виртуальный последовательный порт подключен, к гостевой операционной системе подключается стандартный типовой 16450 последовательный порт. Поддерживается как прием так и передача данных. Настройка этого виртуального последовательного порта зависит от настроек операционной системы хоста.

Вы можете использовать графический интерфейс или командную строку VBoxManage для настройки виртуального последовательного порта. В последнем случае, обратитесь к Раздел 8.5, “VBoxManage modifyvm” ; ознакомьтесь с опциями --uart и --uartmode.

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

  1. номер последовательного порта, базовый адрес I/O и номер прерывания (IRQ). Мы рекомендуем использовать традиционные значения [ 10 ] , т.е.:

    1. COM1: I/O base 0x3F8, IRQ 4

    2. COM2: I/O base 0x2F8, IRQ 3

    3. COM3: I/O base 0x3E8, IRQ 4

    4. COM4: I/O base 0x2E8, IRQ 3

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

    • Вы можете выбрать режим «отключен», когда гость видит устройство , но не может с ним работать, как будто к нему не подключен кабель.

    • Вы можете подключить виртуальный порт к физическому порту вашей хост системы. (В Windows, это может быть COM1 ; в Linux или OpenSolaris, это устройство , такое как /dev/ttyS0 ). VirtualBox будет просто перенаправлять все данные, с виртуального порта на физический последовательный порт.

    • Вы можете указать VirtualBox подключить виртуальный порт к программному каналу (pipe) хоста. Этот режим зависит от ОС хоста:

      • В Windows, данные будут посылаться в именованный канал. Вы можете использовать программу VMWare Serial Line Gateway, доступную для загрузки на http://www.l4ka.org/tools/vmwaregateway.php . Эта утилита работает в режиме сервер и создает фиксированный канал с именем \\.\pipe\vmwaredebug и принимает входящие соединения на 567 порту TCP.

      • В Mac, Linux или OpenSolaris хостах, используется локальный сокет. В Linux имеются различные инструменты которые позволяют подсоединиться к локальному сокету и работают в режиме сервера. Наиболее гибким инструментом является socat и который включен в множество дистрибутивов.

      Вы можете настроить VirtualBox для создания нового именованного канала(локальныого сокета), или указать VirtualBox использование существующего канала (сокета). С помощью опций командной строки VBoxManage указывается режим «сервер» или «клиент».

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

3.7.7. Поддержка USB

3.7.7.1. Поддержка USB

Раздел «USB» в окне настроек ВМ позволяет вам настроить VirtualBox различные механизмы поддержки USB .

VirtualBox может предоставить прямой доступ виртуальных машин к устройствам USB хост системы. Для этого VirtualBox предоставляет гостевым системам контроллер USB. Как только гостевая система использующая USB запускается, устройство становится недоступным на хосте.

Замечание

  1. Будте осторожны с устройствами которые используются в данный момент на хост системе! например, если вы подключите к гостю жесткий диск USB, используемый на хосте, то при активизации гостя, устройство будет отключено без использования механизмов безопасного отключения. Это может привести к потере данных.

  2. Поддержка USB на хост системах Solaris имеет несколько известных ограничений; см. Глава 13, Известные проблемы .

В дополнение к доступу виртуалных машин к локальным USB устройствам, VirtualBox также позволяет подключать к гостям удаленные USB по протоколу VRDP. За подробностями обращайтесь к Раздел 7.4.3, “Удаленные USB” .

Во первых в диалоге настроек вы должны указать будет ли доступны в госте usb устройства и возможности контроллера USB 2.0 (EHCI) . Если доступны, то вы должны определить доступные устройства. Для этого, вы должны создать так называемые «фильтры» которые определяют определенные свойства USB устройств.

Кликнете на кнопке «+» справа от окна «Фильтры устройств USB » для создания нового фильтра. Вы можете задать имя фильтра и определенные критерии. Чем больше критериев вы зададите тем будет точнее вероятность выбора нужного устройства. Например, если вы укажете код поставщика (vendor ID) равный 046d, все устройства произведенные Logitech будут доступны гостю. Если вы заполните все поля, фильтр будет применяться только к конкретной модели от конкретного производителя, исключая даже подобные устройства но с другим серийным номером.

Доступны следующие критерии фильтров:

  1. Vendor and product ID. Для USB, каждый производитель устройств USB имеет уникальный номер «vendor ID». Вдобавок, каждой серии устройств присваивается номер «product ID» . Оба номера задаются в шестьнадцатиричном формате(номер состоит из цифр 0-9 и букв A-F) и код продукта разделяется от кода поставщика двоеточием. Например, 046d:c016 означает, что производитель Logitech и устройство «M-UV69a Optical Wheel Mouse» .

    В качестве альтернативы, вы можете указать «Производитель» и «Продукт» по имени.

    Чтобы получить список всех USB устройств подключенных к хосту, с номерами производителя и продукта, вы моете использовать команды (см. Глава 8, Описание VBoxManage ):

    
    VBoxManage list usbhost

    В Windows, вы можете также увидеть список всех подключенных USB устройств в Device Manager. В Linux, вы можете использовать команду lsusb .

  2. Серийный номер. Хотя vendor и product ID достаточно для определения устройств USB , вы можете иметь два идентичных устройства одной марки и серии, поэтому вам могут понадобиться их серийные номера для их корректной идентификации.

  3. Удаленный. Эта настройка предназначена для указания того, будет ли устройство подключаться как локальное, удаленное(через VRDP) или как то и другое.

На хосте Windows, вы должны отключить и переподключить USB устройство для использования, после создания фильтра к нему.

Например, можете создать новый USB фильтр и указать ID поставщика 046d (Logitech, Inc), индекс производителя = 1, и «не удаленное». В этом случае любое устройство USB в хост системе, произведенное Logitech, Inc с a индексом производителя 1 будет доступно в гостевой системе.

Несколько фильтров может обрабатывать одно устройство — например, фильтр определяющий все устройства Logitech и один фильтр который определяет конкретную веб-камеру.

Вы можете отключить фильтр без удаления, кликнув на флажке перед именем фильтра.

3.7.7.2. Замечания к реализациям в Windows и Linux системах

На хост системах Windows, поддержка USB устройства осуществляется драйвером в режиме ядра. Данная реализация позволяет реализовать два монитора USB , которые позволяют VirtualBox обрабатывать подключенные устройства и предоставлять USB устройство как часть виртуальной машины. В отличие от версии VirtualBox versions до 1.4.0, более не требуется перегружать систему после установки драйвера. Также, теперь вам не нужно переподключать устройства, что бы предоставить их VirtualBox.

На современных Linux системах, VirtualBox предоставляет доступ к USB устройствам через специальные файлы. При установке VirtualBox, доступ к устройствам получают все пользователи группы vboxusers. Для того чтобы получить доступ к устройствам USB из гостевых систем, убедитесь, что вы являетесь членом этой группы.

На старых Linux системах, для доступа к USB устройствам используется файловая система usbfs . Таким образом, пользователю работающему с VirtualBox требуется права чтения и записи к файловой системе USB . Большинство дистрибутивов содержат такую группу (например usbusers ), в которую необходимо добавить пользователя VirtualBox. Also, VirtualBox can only proxy to virtual machines USB devices which are not claimed by a Linux host USB driver. Please refer to the Driver= /proc/bus/usb/devices to see which devices are claimed.

3.7.8. Общие папки

Общие папки позволяют вам легко обмениваться данными между виртуальной машиной и хост системой. Эта функциональность требует установки гостевых дополнений в виртуальной машине и подробно описана в Раздел 4.6, “Общие папки” .

3.7.9. Удаленный экран

В секции настройки «Удаленный дисплей», вы можете включить встроенный в VirtualBox VRDP — сервер удаленного рабочего стола, который позволяет удаленным клиентам к виртуальной машине. Вы можете использовать стандартный клиент RDP, например встроенный в Microsoft Windows (typically found under «Accessories» -> «Communication» -> «Remote Desktop Connection») или в Linux стандартную открытую программу rdesktop .

Эта особенность детально описана в Раздел 7.4, “Удаленные виртуальные машины (поддержка VRDP )” .

Проброс портов в VirtualBox для подключения к Linux по SSH | Info-Comp.ru

В данной статье мы с Вами рассмотрим возможность программы VirtualBox пробрасывать порты в гостевую операционную систему, для того чтобы иметь доступ к ней с хоста, т.е. с реальной машины, например, в тех случаях, когда подключение (сеть) в гостевой ОС в VirtualBox работает в режиме «NAT».

Данная возможность будет полезна, например, когда Вам нужен одновременно и доступ к Интернету в гостевой операционной системе, и доступ к каким-нибудь сервисам в гостевой ОС с хоста.

Доступ к Интернету в гостевой ОС можно получить с помощью выбора типа подключения «NAT», но как Вы, наверное, знаете, при этом теряется доступ к сервисам гостевой ОС с реального Вашего компьютера. Данную проблему как раз и решает проброс портов.

Рассматривать проброс портов мы будем на примере случая, когда Вы создали виртуальную машину в VirtualBox и установили в нее серверную операционную систему, например Linux Ubuntu Server, при этом Вы настроили сеть в режиме NAT для доступа в Интернет, но доступа к гостевой операционной системе (Ubuntu Server) у Вас нет. Например, Вы не можете подключиться к ней по SSH со своего компьютера, или обратиться к Web серверу, или даже просто скопировать команду и вставить в консоль. Поэтому давайте пробросим порт в гостевую ОС, например, для того чтобы подключится к ней по SSH всем известной программой PuTTY. С помощью нее мы сможем без проблем управлять сервером и в случае необходимости копировать команды в нее.

Для сведения.

PuTTY – это бесплатная клиентская программа для удаленного подключения, например к серверам по протоколам SSH, Telnet и другим. Она позволяет управлять удаленным компьютером. PuTTY — это клиентская часть, серверная должна быть реализована на удаленной стороне, например, в нашем случае в Ubuntu Server должен быть установлен SSH сервер. Скачать PuTTY можно с официального сайта — www.putty.org.

Настройка проброса портов в VirtualBox для SSH

SSH – сервер обычно прослушивает 22 порт, поэтому нам необходимо пробросить подключение именно на 22 порт.

Шаг 1

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

Шаг 2

Затем переходим в раздел настроек «Сеть», и открываем вкладку с включенным адаптером. Тип подключения, как Вы помните, «NAT» — для доступа в Интернет.

Шаг 3

Далее щелкаем на пункт «Дополнительно», чтобы отобразить дополнительные настройки данного адаптера, и после этого нажимаем на кнопку «Проброс портов».

Шаг 4

В итоге у нас откроется окно «Правила проброса портов». Для добавления нового правила нажимаем на иконку с плюсиком.

Шаг 5

На данном этапе Вы уже должны знать IP адрес гостевой операционной системы и порт, который прослушивает SSH сервер (по умолчанию это 22 порт). В Ubuntu Server IP адрес можно узнать с помощью команды ifconfig (по умолчанию это 10.2.0.15).

Описание колонок таблицы с правилами:

  • Имя – название правила, в нашем случае разумно назвать SSH;
  • Протокол – протокол, по которому будет происходить взаимодействие. В обычных случаях это – TCP;
  • IP хоста – IP адрес Вашего реального компьютера, можно указать 127.0.0.1 или оставить данное поле пустым;
  • Порт хоста – любой свободный порт Вашего компьютера, который будет использоваться для перенаправления на нужный порт в гостевой ОС. Я указал 2222;
  • IP гостя – здесь указываем IP адрес гостевой операционной системы на который будет происходить перенаправление, в моем случае это 10.2.0.15;
  • Порт гостя – порт гостевой ОС, на который нам необходимо пробрасывать наши запросы. В нашем случае это 22 порт, который прослушивает SSH сервер.

После заполнения таблицы с правилом, нажимаем «ОК».

Шаг 6

На этом настройка проброса портов закончена, теперь мы можем проверить работу данного правила (проброса). Для этого сначала запускаем виртуальную машину с Ubuntu Server, а затем программу PuTTY. На вкладке Session выбираем тип соединения SSH и в поле Host Name пишем локальный адрес компьютера (хоста), которой мы указывали в колонке «IP хоста» в правилах проброса портов, если ничего не указывали, то пишите 127.0.0.1. В поле порт указываем номер порта, который мы указывали в колонке «Порт хоста», т.е. 2222. Нажимаем кнопку «Open».

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

У меня на этом все, надеюсь, материал был Вам полезен, пока!

Нравится3Не нравится

Опыт использования виртуализации на 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» (с изображением фотоаппарата)
  • Ввести название снимка и комментарий
Для восстановления снимка через phpvirtualbox нужно:
  • Выделить гостевую систему, с которой нужно сделать снимок
  • Выключить гостевую систему, нажав «Stop»>«Power Off»
  • Перейти на вкладку «Snapshots»
  • Выделить снимок, который нужно восстановить
  • Нажать кнопку «Restore Snapshot» (с изображением компьютера со стрелкой вверх)

Создание дампа


Debian Linux

Процедуры клонирования и восстановления приведены на примере сервера test1 на котором установлена Debian Linux (любой версии, начиная с 5 Lenny точно). Предполжим, что у нас имеются три раздела с тремя файловыми системами: /, /var, /usr

Сначала нужно установить dump:
aptitude install dump

Далее, для создания дампа клонируемого сервера на Debian необходимо от суперпользователя (root) или с помощью sudo дать следующие команды (как сделать так, чтобы не сдампило дампы, думайте сами):
dump 0af test1.root /
dump 0af test1.var /var
dump 0af test1.usr /usr

Здесь:
0 -- дамп уровня 0
a -- не делать предположений о размере носителя, на который осуществляется дамп
L -- делать дамп со смотрированной ФС, при этом сначало делается снимок фс, дапм, потом дамп еще раз, чтобы не было поврежденных файлов. Linux так не умеет.
f -- делать дамп в файл вместо ленточного накопителя.

Полученные файлики нужно переложить на сервер с VirtualBox.

FreeBSD

Процедуры клонирования и восстановления приведены на примере сервера test1 на котором установлена FreeBSD (любой версии, начиная с 6 точно). Предполжим, что у нас имеются три раздела с тремя файловыми системами: /, /var, /usr

Для создания дампа клонируемого сервера на FreeBSD необходимо от суперпользователя (root) или с помощью sudo дать следующие команды (опять напоминаю про дампание дампов):
dump 0aLf test1.root /
dump 0aLf test1.var /var
dump 0aLf test1.usr /usr

Здесь:
0 -- дамп уровня 0
a -- не делать предположений о размере носителя, на который осуществляется дамп
f -- делать дамп в файл вместо ленточного накопителя.

Анаглогино, полученные файлики нужно переложить на сервер с VirtualBox.

Развертывание дампа


Debian Linux

1. Нужно сделать виртуальную машину, прицепить к ней диск и загрузочный LiveCD Debian.

2. Затем нужно примонтировать получившийся раздел, зачать на него дампы, развернуть их:
cd /mnt1 && restore -rf /mnt/test1.root && cd usr && restore -rf /mnt/test1.usr &&
cd ../var && restore -rf /mnt/test1.var

3. Установить загрузчик:
grub-install /dev/sda1.

4. Поправить UUID в /etc/fstab

5. Проверить, чтобы в /boot/grub/grub.cfg были правильно указаны UUID разделов:
search --no-floppy --fs-uuid --set df7f92ba-2877-4b39-8805-966cf9ab52f3
linux /boot/vmlinuz-2.6.32-5-amd64 root=UUID=df7f92ba-2877-4b39-8805-966cf9ab52f3 ro quiet

6. Проверить /var/spool/cron/crontabs, /etc/crontab и отключить то, что ненужно.

7. Если на восстанавливаемом сервере была включена консоль, то убрать из /etc/inittab строчку похожую на следующую:
T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100, а и из /etc/default/grub такую:
GRUB_TERMINAL=console (достаточно закомментировать).

FreeBSD

Созданные дампы нужно развернуть на образе диска, выделенного под гостевую систему. В настоящие время поддержка файловых систем UFS используемых во FreeBSD ограниченна, поэтому для развертывания дампов создается виртуальная машина FreeBSD, к ней подключается раздел для хранения дампов, на который с помощью scp и пересылаются дампы с клонируемых серверов. Потом к этой машине подключается образ диска выделенный под гостевую систему, на этом образе создается файловая система FreeBSD и разворачивается полученный дамп.

Далее предполагается, что раздел tmp примонтирован в /mnt, образ диска для гостевой ОС размечен под два слайса, первый из которых примонтирован в mnt1, а второй отдан под swap и не примонтирован. Тогда развернуть дамп можно следующим образом:

cd /mnt1 && restore -rf /mnt/test1.root && cd usr && restore -rf /mnt/test1.usr &&
cd ../var && restore -rf /mnt/test1.var

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

Необходимые изменения в конфигурации гостевой ОС клонированного сервера


До загрузки гостевую ОС нужно перенастроить для работы в виртуальной машине. Количество требуемых действий как правило минимально и сводится к следующему:

1. Находясь в директории mnt1 (см. выше) удаляем файлы конфигурации загрузчика. Это особенно актуально, если виртуализуем какой-нибудь продукционный сервер, чтобы исключить использование COM-порта в качестве консоли по умолчанию, что приводит к зависанию загрузчика.
rm /mnt1/boot.config
rm /mnt1/boot/device.hints

2. Заменить содержимое файла /mnt1/etc/fstab следующим:
/dev/ad0s1b none swap sw 0 0
/dev/ad0s1a / ufs rw 2 2

При этом предполагается, что образ диска гостевой ОС разбит на 2 слайса, первый из которых отдан под хранение данных и второй под swap.

3. Если нужно, сказать клонированной системе о необходимости загрузки модуля ядра для работы с эмулированной сетевой картой, для чего нужно в файле /boot/loader.conf добавить строчку if_em_load="YES"

4. Указать клонированное системе выделенный для нее IP-адрес, для чего в /etc/rc.conf нужно закомментировать строчку текущих настроек сетевого адаптера и добавить новую строчку следующего вида:

ifconfig_em0="inet 10.0.0.8/24"

6. Если клонированному серверу выделяется видимый снаружи IP-адрес, то нужно удалить его настройки, отвечающие за его взаимодействие с другими серверами. Внимание! У клонированного сервера есть все настройки настоящего, поэтому теоретически возможно, что если настройки не удалить, то клонированный сервер будет мешать работе боевой системы. Главное место, которое нужно проверить на FreeBSD-based серверах, находится в /var/cron/tabs/.

7. Выключить FreeBSD, использованную для разворачивания дампа, и загрузить гостевую систему с клоном сервера. В случае проблем при загрузке возможно, что ядро на системе было пересобрано с измененной конфигурацией, это можно исправить сказав загрузчику загрузить ядро по умолчанию, которое я надеюсь вы сохранили в системе во время пересборки:
unload
load boot/kernel.GENERIC/kernel
boot

Для отдачи этих команд необходимо включить гостевую систему, подключиться к ней по RDP и дождаться появления на экране сообщений о том, что можно нажать Enter для указания опций загрузчику.

8. Добавить пользователя для доступа по ssh, зайдя через RDP на клонированный сервер:
pw user add username -g wheel && passwd username

Здесь опция -g wheel добавляет пользователя в группу wheel, члены которой во FreeBSD обладают правом делать sudo и su.

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


Внутри VirtualBox можно создавать полностью изолированные виртуальные сети. Какие возможности это дает?

Минимизация необходимости перенастройки клонированных серверов
Создание тестовой среды для отработки взаимодействия серверов между собой

Создание виртуальной сети


Чтобы создать виртуальную сеть нужно в phpvirtualbox зайти в свойства гостевой системы, перейти в раздел Network, выбрать в поле «Attached to» опцию «Internal Network», а в выпадающем списке «Name» выбрать требуемую виртуальную сеть. Какие могут возникнуть сложности?

Нужно создать новую виртуальную сеть, а такой опции в интерфейсе нет. Есть два варианта решения:

Попробовать написать имя новой виртуальной сети прямо в выпадающем списке «Name». Однако в этом случае может возникнуть ошибка.
Тогда нужно привязать сетевой адаптер гостевой системы к виртуальной сети через CLI:

sudo su -s /bin/bash vbox
VBoxManage modifyvm test1 --nic1 intnet

Здесь
nic1 — сетевой адаптер гостевой системы, где 1 это его порядковый номер. Количество адаптеров в гостевой системе не ограничено
intnet — виртуальная сеть, название может быть любым. Особенность работы VirtualBox заключается в том, что специально создавать виртуальные сети не нужно, достаточно указать нескольким гостевым системам одну и ту же виртуальную сеть и они окажутся связанными на (эмулированном) физическом уровне автоматически, что аналогично подключению нескольких реальных компьютеров к одному свитчу (коммутатору).

Более подробная информация находится в разделе 8.7.2 Networking setting руководства пользователя.

Управление недоступными снаружи машинами в виртуальной сети


Доступ по RDP


RDP-сервер работает на физическом сервере, поэтому для подключения к любой виртуальной машине справедливо написанное в разделе Управление через веб-интерфейс этой статьи.

Проброс портов


Существует возможность создать в гостевой системе виртуальную сетевую карту с подключением через NAT (реализуемый автоматически средствами VirtualBox) и пробросить (отобразить) произвольный порт гостевой системы на порт сервера VirtualBox. Для того, чтобы сделать это через phpvirtualbox, нужно:

1. Зайти в свойства гостевой системы, перейти в раздел «Network», выбрать в поле «Attached to» опцию «NAT»

2. Раскрыть опции, скрывающиеся в разделе «Advanced» этого же раздела, и нажать там кнопку Port Forwarding

3. В открывшемся окне «Port Forwarding Rules» указать следующие параметры:

4. Нужный протокол, путем щелчка мышью по именованию «TCP» в поле «Protocol»

5. Указать свободный порт на сервере VirtualBox в поле «Host Port»

6. Указать порт гостевой системы в поле «Guest Port».

Больше ничего указывать не нужно. После применения настроек порт гостевой системы станет немедленно (без перезагрузки) доступен через соответствующий порт сервера VirtualBox. Как пример, в случае с пробросом порта ssh (22 TCP) гостевой системы на 2200 порт VirtualBox нужно указать следующие параметры:
Параметр Значение
Name ssh (необязательный параметр)
Protocol TCP
Host IP Не указывать
Host Port 2200
Guest Port 22
Guest IP Не указывать

Количество отображаемых портов не ограничено, можно отобразить столько, сколько нужно.

Виртуальный маршрутизатор


В случае создание в VirtualBox группы взаимодействующих гостевых систем без внешних адресов имеет смысл установить еще одну гостевую систему, которая будет играть роль маршрутизатора. Какие цели при этом достигаются?

Конфигурацию сетевых адаптеров клонированных сервером можно не менять. При этом виртуальный маршрутизатор создает для остальных гостевых систем видимость того, что они настоящие и пользуются своими настоящими именами хостов и IP-адресами
К гостевым системам не имеющим ни внешних адресов, ни описанной выше возможности проброса портов, которая работает только в случае использования NAT опции VirtualBox, становится возможен прямой доступ по ssh.

Создание создание виртуального маршрутизатора состоит из следующих шагов:

  • Создание гостевой системы
  • Установка на гостевую систему любой ОС, которая может играть роль маршрутизатора, например Debian Linux или FreeBSD
  • Ввод гостевой системы в виртуальную сеть как описано выше
  • Настройка гостевой системы для выполнения функций маршрутизатора
  • Подключение к гостевой системе второго виртуального сетевого адаптера в режиме моста с сетевым адаптером сервера VirtualBox

После этого можно пробрасывать порты с виртуального маршрутизатора на гостевые системы без внешних адресов. В случае Linux c iptables для проброса входящих соединений с 2200 порта протокола TCP виртуального маршрутизатора на 22 порт (TCP) гостевой системы без внешнего адреса c внутренним адресом 192.168.0.2 достаточно следующего правила:
iptables -t nat -A ROUTING -p tcp -i eth0 --dport 2200 -j DNAT --to-destination 192.168.0.2:22

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

Доступ по SSH


В соответствии с вышеприведенным примером можно зайти по ssh на гостевую систему без внешнего адреса указав в ssh-клиенте адрес виртуального маршрутизатора и порт 2200. Аналогично можно зайти по scp для передачи файлов на гостевую систему.

Настраиваем виртуальный компорт в Ubuntu

Удобно работать с виртуальной машиной XPSP3 в VirtualBox’е: когда надо включаешь её, когда не надо – выключаешь, всё очень быстро, и вирусы прочно экранируются. Но вот понадобилось внести изменения в отлаживаемую «виндовую» программу, работающую со старыми добрыми компортами. И тут обнаруживается: не работает компорт виртуальной машины… В ЛОРе нет хорошего ответа. Всё сводится к рекомендации создания новой машины, а это время. Западные пользователи на форумах тоже дают немало пустых советов. А на самом деле всё не так уж и сложно.

Сначала надо установить утилиту настройки аппаратного компорта хост-машины. Называется она setserial, в дистрибутивах Ubuntu её нет, но зато она есть в репозиториях, поэтому воспользуемся командой терминала:

sudo apt-get install setserial

И, конечно, запустим эту утилиту, чтобы посмотреть, присутствует ли на материнской плате, что собой представляет и как настроен аппаратный порт хозяйки (далее в примере исследуем COM1):

sudo setserial -g /dev/ttyS0

Учтите, что ttyS0 соответствует COM1, ttyS1 соответствует COM2 и т.д. согласно терминологии Линукса. Подставьте нужное. После ввода пароля суперпользователя в норме должен быть получен ответ:

/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4

Иначе компорт отсутствует или отключен на уровне BIOS’а хост-машины. Выключенный порт включаем. В случае отсутствия на материнской плате аппаратного компорта придётся поставить «костыль» из дополнительной PCI-платы расширения и добавить модуль его драйвера из прилагаемого к ней диска. Проверено: для Линукса драйверы раюотоспособны, но уточните номер появившегося компорта командой терминала

ls /dev/ttyS*

При необходимости параметры настройки коммуникационного порта можно откорректировать ( как именно – см. терминальной командой man setserial).

Настраиваем проключение виртуального COMn в аппаратный COMn, то бишь в файл ttySn+1. Для этого запускаем VirtualBox, НЕ ЗАПУСКАЯ ВИРТУАЛЬНУЮ МАШИНУ, и настраиваем параметры её компорта, как показано на этом скриншоте:

Здесь важно, чтобы номер порта, номер прерывания и адрес ввода-вывода совпадали бы с теми, которые проиндицировала утилита setserial. Если не совпадают, то утилита setserial поможет перенастроить параметры аппаратного компорта.

Но если вы сейчас попытаетесь запустить виртуальную машину, то с очень большой вероятностью получите ошибку. А всего-то надо сделать ещё две вещи.

Во-первых, вы, хотя и являетесь «главным администратором», не обязательно автоматически являетесь членом группы пользователей виртуальной машины. Удивительно? Но бывает нередко. Впрочем, эта нелепость устраняется легко. Чтобы не заморачиваться с CLI, установите с помощью эмулятора терминала великолепную утилиту gnome-system-tools (она есть в репозиториях) командой

sudo apt-get install gnome-system-tools

Данную утилиту рекомендую для многократного употребления, поэтому скопируйте из папки /usr/share/applications значок «Пользователи и группы» на рабочий стол и запустите эту утилиту из рабочего стола. Откроется окно «Параметры пользователей». Жмите кнопку «Управление группами», в открывшемся окне «Параметры групп» скроллингом отыщите группу vboxusers, выберите её и дважды щёлкните по ней. Откроется окно «Свойства группы vboxusers». Внутри панели «Члены группы» пометьте чекбокс напротив своего имени, отражающего вас, как пользователя системы.

Во вторых, реальному порту следует присвоить права «666», что означает разрешение дуплексного обмена через компорт на уровнях владельца, членов его группы и остальных пользователей. Делается это командой

sudo chmod 666 /dev/ttyS0

Вместо ttyS0 подставьте обозначение нужного аппаратного компорта хост-машины. Вcё, теперь можно смело запускать виртуальную машину, включать привычный «виндовый» гипертерминал и с помощью виртуальной Windows настраивать модемы, управлять программаторами и т.д. Словом, делать всё то, как будто бы вы работали с реальной Windows XP или «семёркой». Успехов!

Управление VirtualBox с помощью консоли / Хабр

Виртуализация… виртуализация…
Сейчас все пытаются выжать из своих аппаратных ресурсов как можно больше. Иметь несколько отдельных компьютеров с различными ОС немного накладно и не все организации пойдут на это. Но выход есть, можно использовать виртуальные машины. И возможно, что многие используют для этих целей замечательный продукт от Sun «VirtualBox». Я уверен, что большинство для настройки используют GUI интерфейс, т.к. это очень наглядно и удобно. Но многие ли задумывались о возможности управления VirtualBox через консоль.
Была поставлена задача: На один сервер поставить две ОС (Ubuntu и Windows). При этом был работающий сервер под управлением Ubuntu 9.04 Server Edition. Поэтому было решено ставить Windows XP в качестве гостевой системы.
Но возникла проблема на Ubuntu НЕ УСТАНОВЛЕНА никакая графическая среда, т.е. там есть только голая консоль.

Итак, что у нас есть:
  • Хост система: Ubuntu 9.04 Server Edition
  • VirtualBox 2.2.2
  • Гостевая система: Windows XP

Установка VirtualBox

Скачиваем с официального сайта VirtualBox пакет для Ubuntu 9.04
После того, как скачали, выполняем комманду:
dpkg -i virtualbox-2.2_2.2.2-46594_Ubuntu_jaunty_i386.deb
VirtualBox должен установится. Если возникла проблемы при установке пакета, изучите сообщение об ошибках. Возможно у вас не установлены необходимые пакеты. В моем случае у меня не был установлен пакет libxslt1.1, что моментально было исправлено командой sudo apt-get install libxslt1.1.
Добавляем себя в группу vboxusers
sudo usermod -a -G vboxusers имя_пользователя
Создание виртуальной машины

Для начала стоит отметить, что для управления виртуальными машинами через консоль используется одна команда VBoxManage (правда у неё очень много параметров).
Начнем.
  1. Для начала создадим машину и сразу её зарегистрируем
    VBoxManage createvm -name имя_виртуальной_машины -register
  2. Далее необходимо создать диск для машины
    VBoxManage createhd --filename имя_диска --size размер_диска_в_мегабайтах
    Существует возможность выбрать тип диска VDI (VirtualBox), VMDK (VMWare), VHD (Microsoft Virtual PC). По умолчанию, конечно же, VDI :).
  3. Делаем дополнительные настройки нашей виртуальной машины. Укажем:
    • Тип гостевой ОС. Для получения списка поддерживаемых ОС выполните команду VBoxManage list ostypes
    • Размер выделяемой памяти
    • Наименование главного диска
    • Возможность использовать VRDP (VirtualBox Remote Desktop Protocol)
    VBoxManage modifyvm имя_виртуальной_машины --ostype тип_ОС --memory размер_памяти_в_мегабайтах --hda имя_диска --vrdp on
  4. Подключим образ диска, с которого будем ставить Windows XP
    • Зарегестрируем DVD с образом дистрибутива системы
      VBoxManage openmedium путь_до_образа
    • Вставим наш диск в виртуальный привод
      VBoxManage modifyvm WindowsXP --dvd путь_до_образа

  5. Посмотрим на настройки нашей машины. Убеждаемся, что все нас устраивает и…
    VBoxManage showvminfo имя_машины
… Запуск… Поехали

Чтобы запустить виртуальную машину надо выполнить
VBoxManage startvm имя_машины --type vrdp
Параметр —type vrdp нужен, чтобы подключиться к машине с помощью VRDP
Все, теперь осталось подключится к нашей машине, с помощью удаленного рабочего стола. Это можно сделать с помощью стандартных утилит: для windows это mstsc, для никсовых систем rdesktop.Т.к. у нас есть только консоль, то надо воспользоваться компьютером, имеющим графический рабочий стол.
Чтобы подключится, надо указывать IP хост машины и порт для данной виртуальной машины. В моем случае, я ничего не менял и использовал порт по умолчанию (3389). Чтобы изменить порт, выполните VBoxManage --vrdpport порт. Если у Вас установлено несколько виртуальных машин, то для того, чтобы подключаться к каждой их них, необходимо в настройках указать различные порты, например, для первой машины 3389, для второй 3390 и т.п.
Вместо эпилога

Теперь у нас запущена виртуальная машина и мы к ней спокойно можем подключаться используя протокол VRDP. Я спокойно установил Window XP, находясь за своим рабочим компьютером.

P.S. Windows XP была нужна только по одной причине. В проекте нужно было использовать MS SQL Server.

Полезные ссылки:

Документация по VBoxManage

UPD: bsdemon предложил ещё один способ. Использовать libvirt

Как использовать последовательный порт хоста от гостя в VirtualBox

Как специалист по встроенному программному обеспечению, доступ к последовательному порту является очень важным требованием для меня, независимо от того, какую ОС я использую и как я ее использую (я имею в виду с виртуализацией или без нее).

У меня Windows XP в качестве основной операционной системы, однако мне нужно работать с Linux для множества хобби-проектов. Я ненавижу управлять двумя компьютерами по двум причинам: во-первых, на рабочем месте возникает беспорядок из-за лишних проводов, а во-вторых, мне всегда нужно место для хранения таких предметов, как блоки питания, осциллографы, программаторы, отладчики и т. Д.которые неизбежны.

Итак, я установил Kubuntu в качестве гостевой ОС на моем хосте Windows и хотел получить доступ к последовательному порту хоста для целей отладки. Virtual Box действительно предоставляет эту функцию, и ее довольно легко настроить. Проблема в том, что это можно сделать более чем одним способом, и здесь пользователь может запутаться, поэтому я пишу этот пост. Прежде чем приступить к делу, мы просто найдем немного больше информации о последовательных портах

.

Как называются последовательные порты:

В Windows, таких как операционные системы, последовательные порты называются как COM1, COM2 и так далее, в то время как в Linux они называются как / dev / ttyS0, / dev / ttyS1 и так далее.Поскольку в моем примере задействованы обе операционные системы, это может вызвать некоторую путаницу. Как правило, то, что будет называть COM1 в окнах, будет / dev / ttyS0, COM2 будет / dev / ttyS1 и так далее. Несмотря на то, что имена разные, они относятся к одним и тем же портам прерывания и ввода-вывода, и именно так мы сопоставляем эти имена.

Имя в Windows Имя в Linux Адрес ввода-вывода Запрос прерывания (IRQ)
COM 1 / устройство / ttyS0 0x3F8 4
COM 2 / устройство / ttyS1 0x2F8 3
COM 3 / dev / ttyS2 0x3E8 4
COM 4 / устройство / ttyS3 0x2E8 3

Настройка и требования:

Мой компьютер имеет четыре последовательных порта: COM1, COM2, COM3 и COM4.Мое требование очень простое. Я хочу получить доступ к COM3 в моем гостевом компьютере Kubuntu, установленном в Virtual Box Virtual Machine. (Мы могли бы взять сам COM1, но это будет немного запутать, поэтому сначала мы остановимся на COM3, как только мы узнаем, как это сделать, мы сможем получить доступ к любому порту аналогичным образом).

Конфигурация VirtualBox:

Следующим шагом является настройка виртуального бокса для подключения виртуального последовательного порта в гостевой ОС к физическому последовательному порту на хосте. Это довольно просто, если вы знаете, что ИГНОРИРОВАТЬ в диалоговом окне конфигурации последовательного порта Virtual Box.Теперь приступим к настройке. Откройте диалоговое окно конфигурации последовательного порта для интересующей виртуальной машины, по умолчанию будет видна вкладка Port0. Для нашей цели поля IGNORE IRQ, IO PORT и Create Pipe.

  1. На вкладке Port0 установите флажок Enable Serial Port (вы не сможете изменить какие-либо другие настройки, пока не установите этот флажок).
  2. Номер порта
  3. : это поле относится к номеру порта в гостевой ОС , мы хотим сопоставить его с COM1 (/ dev / ttyS0), поэтому выберите COM1 (помните, что это не имеет ничего общего с физическими портами)
  4. Port Mode: мы хотим подключить виртуальное устройство к физическому устройству на хосте, поэтому установите его на «Host Device».
  5. Путь к порту
  6. : для режима порта «Хост-устройство» это поле относится к порту физического устройства с номером на хосте , мы хотим подключиться к COM3 на хосте, поэтому введите здесь COM3.

Посмотрите снимок экрана ниже для настройки виртуального ящика.

Настройки последовательного порта Virtual Box

Это просто установите эти 3 поля на правильные значения, и все готово.

Теперь давайте проверим, действительно ли это работает или нет, как я уже сказал, моя виртуальная машина работает под управлением Kubuntu, поэтому последовательный порт COM1 (технически порт с IRQ = 4 и I / O Port = 0x3f8) будет сопоставлен с / dev / ttyS0.

Проверка под гостевой ОС:

Чтобы проверить работу последовательного порта в гостевой ОС, нам понадобится терминал определенного типа для последовательного порта для ОС Gust.Поскольку наша гостевая ОС — Kubuntu, я использовал Cutecom. Теперь фактическую проверку можно провести двумя способами.

  1. Короткие контакты 2 и 3 физического последовательного порта, это закоротит контакты Rx и Tx последовательного порта, и все, что вы отправите через терминал, будет отражено обратно на терминал.
  2. Подключите любое устройство RS-232 к последовательному порту и проверьте его с помощью специальных команд устройства или приложения.

Я выберу первый метод, потому что он будет работать для всех, поэтому закоротите контакты RX и Tx для физического последовательного порта и настройте Cutecom для установки устройства на / dev / ttyS0, выполните другие настройки, как показано на снимке экрана ниже.

Настройки Cutecom

Смотрите в действии ниже:

Рабочий последовательный порт под гостевой ОС

Последние мысли:

  • Для того, чтобы сопоставить COM1 и / dev / ttyS0, нам нужно установить поля Port Number и Port Path на COM1 в настройках последовательного порта Virtual Box.
  • Хотя я тестировал его на Kubuntu, он должен работать на любом уничтоженном Linux.
  • Если вашей гостевой ОС является Windows, вы можете использовать программу Hyper Terminal и имя порта, указанное в поле Port Number в настройках последовательного порта Virtual Box.
  • Обратите внимание, что выбранный физический порт не может быть доступен хосту, когда виртуальная машина, использующая этот порт, работает.

Ссылки, связанные с этим сообщением:

Нравится:

Нравится Загрузка …

Связанные

.

linux — Как правильно выполнить переадресацию портов с помощью VirtualBox?

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании
.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *