88.5.6. Виртуальный адаптер хоста
Режим Виртуальный адаптер хоста создает сеть между хост-системой и ВМ, минуя физическую сетевую карту. На хосте создаётся программный сетевой интерфейс, предназначенный для обмена данными между хост-системой и ВМ. Все ВМ, подключённые к такому адаптеру, могут взаимодействовать друг с другом и с хостом, как если бы были подключены к одному коммутатору. Так же, как и в режиме Внутренняя сеть, физический интерфейс ВМ не предоставляется, а значит, машины не имеют доступа к внешней сети:
Для использования этого режима необходимо предварительно создать хотя бы один виртуальный интерфейс хоста.
88.5.6.1. Создание интерфейса в менеджере VirtualBox
Для создания интерфейса в главном окне менеджера VirtualBox следует открыть Менеджер сетей (Ctrl+G), перейти на вкладку Виртуальные сети и нажать кнопку Создать:
В хост-системе появится новое сетевое устройство vboxnet0, которому по умолчанию будет присвоен IP-адрес 192.168.56.1/24. Это устройство соединяет виртуальную подсеть с хост-системой, при этом не имея выхода во внешнюю сеть.
Чтобы изменить параметры интерфейса, следует нажать кнопку Свойства. В открывшемся окне на вкладке можно указать IP-адрес и маску подсети. Указанные значения сразу будут применены к виртуальному адаптеру на стороне хоста.
Чтобы не назначать IP-адрес каждой ВМ вручную, можно активировать встроенный DHCP-сервер VirtualBox. Для этого необходимо перейти на вкладку и активировать опцию DHCP-сервер (вне зависимости от того, статический или динамический IP-адрес присвоен сетевому адаптеру):
Адрес DHCP-сервера следует выбирать в том же диапазоне, что и адрес виртуального адаптера хоста, и он не должен пересекаться с адресами физических сетевых адаптеров.
88.5.6.2. Создание виртуального интерфейса в консоли
Для создания интерфейса можно воспользоваться утилитой командной строки
VBoxManage:
$ VBoxManage hostonlyif create
После выполнения этой команды в системе появится новый виртуальный интерфейс.
Чтобы подключить ВМ к виртуальному адаптеру хоста, необходимо:
Открыть настройки нужной ВМ.
Перейти на вкладку .
Выбрать один из доступных сетевых адаптеров.
В списке выбрать .
В списке выбрать ранее созданный виртуальный интерфейс:
Для объединения нескольких машин в одну виртуальную сеть необходимо выбрать один и тот же виртуальный адаптер хоста для всех ВМ.
88.5.6.4. Обход ограничений режима NAT
Ограничения режима NAT можно обойти, пробросив порты для входящих соединений или добавив второй сетевой адаптер с типом подключения Виртуальный адаптер хоста. Оба метода позволяют установить входящие соединения между хост-системой и локальным сервером внутри ВМ.
88.5.6.4.1. NAT/Сеть NAT + Виртуальный адаптер хоста
При совместном использовании двух режимов получается полноценное сетевое соединение. Все входящие пакеты проходят через виртуальный адаптер хоста, обходя тем самым ограничения NAT режимов.
Настройка связки
NAT +
Виртуальный адаптер хоста:
Открыть настройки нужной ВМ.
Перейти на вкладку .
Настроить первую сетевую карту () на использование виртуального адаптера хоста:
Настроить вторую сетевую карту () на использование режима NAT:
Запустить ВМ и назначить статический IP-адрес на первом сетевом адаптере.
Всегда устанавливайте первый адаптер для связи с хост-системой, а второй адаптер — для выхода в Интернет.
Пример результата настройки:
$ ip -br addr
lo UNKNOWN 127.0.0.1/8 ::1/128
enp0s3 UP 192.168.56.7/24
enp0s8 UP 10.0.3.15/24
Настройка связки
Сеть NAT +
Виртуальный адаптер хоста:
Добавить
Сеть NAT и отключить для неё DHCP-сервер.
Открыть настройки нужной ВМ.
Перейти на вкладку .
Настроить первую сетевую карту () на использование виртуального адаптера хоста:
Настроить вторую сетевую карту () на использование режима Сеть NAT:
Запустить ВМ и назначить статические IP-адреса для обоих интерфейсов.
Пример результата настройки:
$ ip -br addr
lo UNKNOWN 127.0.0.1/8 ::1/128
enp0s3 UP 192.168.56.7/24
enp0s8 UP 10.2.0.15/24
88.5.6.4.2. NAT/Сеть NAT + Проброс портов
Проброс портов позволяет получить доступ к сетевым службам гостевой ОС из внешних источников. Этот метод предпочтительнее, чем переход в режим моста, так как пользователь сам управляет, какие порты будут доступны извне.
С помощью проброса портов VirtualBox обеспечивает доступ к нужным службам, перенаправляя запросы, поступающие на хост-систему, к гостевой машине. Это особенно полезно, если ВМ используется как сервер, к которому необходимо подключаться извне (например, по SSH или HTTP).
Для настройки проброса портов в режиме
NAT необходимо:
В сетевых настройках ВМ на вкладке нужного адаптера нажать кнопку Проброс портов.
В открывшемся окне добавить новое правило:
Для настройки проброса портов в режиме
Сеть NAT необходимо:
Отрыть настройки сети NAT и перейти на вкладку Проброс портов.
Задать параметры правила:
Правила проброса портов заполняются следующим образом:
Имя — может быть любым, для удобства можно называть правило именем протокола или службы, работу которого оно обеспечивает;
Протокол — протокол, который использует служба (TCP или UDP);
Адрес хоста — IP-адрес машины, на который будут идти запросы на соединение (хостовой ОС). Обычно указывается localhost 127.0.0.1;
Порт хоста — порт хост-системы, на который поступают запросы на соединение (любой свободный порт > 1024);
Адрес гостя — IP-адрес ВМ;
Порт гостя — порт ВМ, на котором работает нужная служба.
Проброс портов работает только при включённой ВМ. Если ВМ выключена, запросы на соответствующий порт будут игнорироваться или обрабатываться хост-системой.
Для настройки проброса портов в режиме NAT можно использовать команду:
$ VBoxManage modifyvm "ALT Workstation" --natpf1 "SSH,tcp,127.0.0.1,2222,10.0.2.15,22"
здесь
ALT Workstation — имя ВМ;
natpf1 — правило для первого адаптера с NAT;
SSH — имя правила;
tcp — используемый протокол;
127.0.0.1,2222 — адрес и порт на хост-системе;
10.0.2.15,22 — адрес и порт на гостевой системе.
Имя правила должно быть уникальным.