- Как настроить сеть между гостевой виртуальной машиной и хостом в Oracle VirtualBox
- Требования
- Создайте сеть для гостей и хост-машины
- Настройка сетевых параметров виртуальной машины
- Настройте адаптер для подключения виртуальной машины к хосту
- Настройка адаптера для подключения виртуальной машины к Интернету
- Настройка статического IP-адреса для гостевой виртуальной машины
- Управление виртуальными машинами с хоста с помощью SSH
- Настройка сети в гостевой Ubuntu 16.04 Server на VirtualBox + Windows 7
Как настроить сеть между гостевой виртуальной машиной и хостом в Oracle VirtualBox
После того, как вы установили различные операционные системы в Oracle VirtualBox, вы можете включить связь между хостом и виртуальными машинами.
В этой статье мы опишем самый простой и прямой метод настройки сети для гостевых виртуальных машин и хоста в Linux.
Для целей этого руководства:
- Основная операционная система – Linux Mint 18
- ОС виртуальной машины — CentOS 7 и Ubuntu 16.10
Требования
- Рабочий Oracle Virtualbox, установленный на хост-компьютере.
- У вас должна быть установлена гостевая операционная система, такая как Ubuntu, Fedora, CentOS, Linux Mint или любая другая по вашему выбору в виртуальной машине Oracle.
- Выключайте виртуальные машины по мере выполнения настроек вплоть до шага, на котором требуется их включить.
Чтобы гостевой и хост-компьютеры могли обмениваться данными, они должны находиться в одной сети, и по умолчанию вы можете подключить до четырех сетевых карт к своим гостевым компьютерам.
Сетевая карта по умолчанию (адаптер 1) обычно используется для подключения гостевых машин к Интернету с помощью NAT через хост-компьютер.
Важно. Всегда устанавливайте первый адаптер для связи с хостом, а второй адаптер для подключения к Интернету.
Создайте сеть для гостей и хост-машины
В интерфейсе диспетчера Virtualbox ниже начните с создания сети, в которой будут работать хост и гости.
Перейдите в Файл –> Настройки или нажмите Ctrl + G :
В следующем интерфейсе есть два варианта; выберите Host-only Networks, нажав на него. Затем используйте знак + справа, чтобы добавить новую сеть только для хоста.
Ниже приведен снимок экрана, показывающий, что была создана новая сеть только для хоста с именем vboxnet0.
При желании вы можете удалить его, нажав кнопку — посередине, а для просмотра сведений/настроек сети нажмите кнопку изменить.
Вы также можете изменить значения в соответствии с вашими предпочтениями, такие как сетевой адрес, маска сети и т. д.
Примечание. Адрес IPv4 в интерфейсе ниже — это IP-адрес вашего хост-компьютера.
В следующем интерфейсе вы можете настроить сервер DHCP, если вы хотите, чтобы гостевые машины использовали динамический IP-адрес (перед использованием убедитесь, что он включен). Но я рекомендую использовать статический IP-адрес для виртуальных машин.
Теперь нажмите ОК во всех интерфейсах сетевых настроек ниже, чтобы сохранить изменения.
Настройка сетевых параметров виртуальной машины
Примечание. Вы можете выполнить описанные ниже шаги для каждой виртуальной машины, которую вы хотите добавить в сеть для связи с хост-машиной.
Вернувшись в интерфейс диспетчера виртуальных ящиков, выберите свою гостевую виртуальную машину, например сервер Ubuntu 16.10 или CentOS 7, и щелкните меню Настройки.
Настройте адаптер для подключения виртуальной машины к хосту
Выберите параметр Сеть в интерфейсе выше. После этого настройте первую сетевую карту (Адаптер 1) со следующими параметрами:
- Отметьте параметр \Включить сетевой адаптер, чтобы включить его.
- В поле Прикреплено к: выберите Адаптер только для хоста
- Затем выберите имя сети: vboxnet0
Как показано на снимке экрана ниже, нажмите OK, чтобы сохранить настройки:
Настройка адаптера для подключения виртуальной машины к Интернету
Затем добавьте вторую сетевую карту (адаптер 2), чтобы подключить виртуальную машину к Интернету через хост. Используйте настройки ниже:
- Отметьте параметр \Включить сетевой адаптер, чтобы активировать его.
- В поле Подключено к: выберите NAT
Настройка статического IP-адреса для гостевой виртуальной машины
На этом этапе включите гостевую виртуальную машину, войдите в систему и настройте статический IP-адрес. Запустите команду ниже, чтобы отобразить все интерфейсы на гостевой машине и выделенные IP-адреса:
На снимке экрана выше видно, что на виртуальной машине включены три интерфейса:
- lo – петлевой интерфейс
- enp0s3 (адаптер 1) — для связи только с хостом, использующей DHCP, установленный на одном из предыдущих шагов, а затем настроенный со статическим IP-адресом.
- enp0s8 (Адаптер 2) — для подключения к Интернету. По умолчанию будет использоваться DHCP.
В Debian/Ubuntu/Linux Mint
Важно: здесь я использовал сервер Ubuntu 16.10: IP-адрес: 192.168.56.5.
Откройте файл /etc/network/interfaces в своем любимом редакторе с правами суперпользователя:
$ sudo vi /etc/network/interfaces
Используйте следующие настройки интерфейса enp0s3 (используйте здесь предпочтительные значения):
auto enp0s3 iface enp0s3 inet static address 192.168.56.5 network 192.168.56.0 netmask 255.255.255.0 gateway 192.168.56.1 dns-nameservers 8.8.8.8 192.168.56.1
Затем перезапустите сетевые службы следующим образом:
$ sudo systemctl restart networking
Либо перезагрузите систему и внимательно проверьте, использует ли интерфейс новые IP-адреса:
В RHEL/CentOS/Fedora
Важно. Для этого раздела я использовал CentOS 7: IP-адрес: 192.168.56.10.
Начните с открытия файла для enp0s3 — сетевого интерфейса только для хоста; /etc/sysconfig/network-scripts/ifcfg-enp0s3 в вашем любимом редакторе с правами суперпользователя:
$ sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
Создайте/измените следующие настройки (используйте здесь предпочтительные значения):
BOOTPROTO=static ONBOOT=yes IPADDR=192.168.56.10 NETWORK=192.168.56.0 NETMASK=255.255.255.0 GATEWAY=192.168.56.1 DNS=8.8.8.8 192.168.56.1 NM_CONTROLLED=no #use this file not network manager to manage interface
Сохраните файл и выйдите. Затем перезапустите сетевую службу следующим образом (вы также можете перезагрузиться):
$ sudo systemctl restart network.service
Проверьте, использует ли интерфейс новые IP-адреса, следующим образом:
Управление виртуальными машинами с хоста с помощью SSH
На хост-компьютере используйте SSH для управления виртуальными машинами. В следующем примере я получаю доступ к серверу CentOS 7 (192.168.56.10) с помощью SSH:
Вот и все! В этом посте мы описали простой способ настройки сети между гостевой виртуальной машиной и хостом. Поделитесь своими мыслями об этом уроке, используя раздел обратной связи ниже.
Настройка сети в гостевой Ubuntu 16.04 Server на VirtualBox + Windows 7
Весна, снова потянуло на эксперименты. Ну, в моем понимании этого слова. Решил поставить себе в Windows 7 виртуальную машину, а в эту машину — Ubuntu 16.04 Server (под которой работает хостинг для моих сайтов). И не то чтобы меня как-то OpenServer не устраивает — он как раз весьма неплох в качестве домашнего WAMP-а, но всё же иногда хочется иметь под рукой локально и LAMP, ну просто потому что. В качестве виртуальной машины [ожидаемо] выбрал VirtualBox.
В целом, установка Ubuntu 16.04 Server на VirtualBox каких-то особых вопросов не вызвала, но вот настройка сети в Ubuntu так, чтобы ее было видно из Windows, поставила меня в тупик. Ибо опыта в этом деле — 0, а мануалы по теме хотя и гуглятся во множестве, но в каждом из них тема почему-то раскрыта лишь частично, и требует уже определенного уровня знания Linux и принципов работы сетевых интерфейсов.
В конечном итоге я этот вопрос решил и теперь делюсь с теми, кому оно тоже актуально. Приступим.
1. Скачиваем VirtualBox для Windows www.virtualbox.org/wiki/Downloads
2. Скачиваем Ubuntu Server 16.04 www.ubuntu.com/download/server
3. Устанавливаем VirtualBox в систему (ставится легко, раскрывать этот вопрос здесь не буду, в крайнем случае — в сети есть много шпаргалок по теме).
4. Ставим Ubuntu Server 16.04 в VirtualBox. Здесь тоже всё не сложнее (а то и проще), чем установка винды, например, и много всяких хороших руководств с картинками (они, в общем, и не требуются — всё интуитивно понятно). Но есть пара нюансов:
4.1 При установке сети выберите автоматическую настройку.
4.2 При установке пакетов сразу поставьте галки на сервер OpenSSH и LAMP (остальное по желанию) — так проще.
5. Я полагаю, что все у вас прошло нормально, Ubuntu загрузилась, и интернет в ней наличествует ( проверить можно командой ping yandex.ru например). Однако, остается вопрос, как, например, законнектиться с Ubuntu из Windows скажем, через SSH. Или просто даже открыть в браузере сайт, работающий на убунтовском Apache.
6. Итак, остановим нашу Ubuntu, закроем окно с терминалом, и уже в главном окне VirtualBox идем в Файл → Настройки → Сеть → Виртуальные сети хоста — справа три маленькие иконки — жмем на нижнюю с изображением отвертки.
7. Видим IP-адрес: 192.168.56.1 — это адрес, по которому Windows обращается к VirtualBox.
8. Рядом вкладка «DHCP сервер» в нашем случае она пуста (чекбокс не выбран). И пусть таковой и остается.
9. Далее идем в настройки гостевой системы (в нашем случае — Ubuntu 16.04.2 Server), щелкаем правой кнопкой на вкладке с системой и выбираем самый верхний пункт «Настроить. ».
10. Здесь снова идем в «Сеть» (у нас получается два одноименных пункта «Сеть», но в первом случае мы настраивали сеть Windows и VirtualBox, а теперь мы настраиваем сеть гостевой системы — Ubuntu в связке с остальным). Здесь мы видим, что для первого адаптера отмечена NAT. Не меняем.
11. Открываем вкладку «Адаптер 2», ставим галку на «Включить сетевой адаптер» и в списке выбираем тип подключения: «Виртуальный адаптер хоста». Жмем ОК. Это действие добавит нам в Ubuntu сетевой адаптер, через который мы и прорубим окно во внешний мир, и в которое можно будет посмотреть на Ubuntu из Windows, через браузер или SSH-клиент, например.
12. Далее идем в окно терминала Ubuntu, логинимся (если еще не), и сразу ставим mc
Чем значительно облегчаем себе дальнейшую жизнь (здесь вспоминается высказывание древнего философа: — Это как же нужно было не любить людей, чтобы содать vi )
13. Смотрим какие сетевые интерфейсы нам доступны:
Нужно это для того, чтобы понять, какое имя в Ubuntu носит тот самый «Виртуальный адаптер хоста», который мы создали в шаге №11
На скрине вы видите уже настроенные интерфейсы, но у вас будет примерно то же самое. Нас в данной ситуации исключительно интересует какое имя носит сетевой интерфейс, через который мы и будем осуществлять доступ из винды в убунту.
Здесь мы видим, что есть три интерфейса: lo — локальная петля, enp0s3 — это «Адаптер 1» который у нас настроен как NAT (через него идет интернет-трафик в Ubuntu) и, наконец, enp0s8 — это и есть вышеупомянутый «Адаптер 2» («Виртуальный адаптер хоста»). Теперь осталось его настроить.
14. Запускаем mc от имени суперпользователя:
15. И открываем для правки файл
(переводим на него курсор и жмем F4), либо просто командой
Но лично я предпочитаю через mc — меньше буковок набирать приходится 🙂
16. И добавляем туда в конец текста такие строки:
Получается что-то вроде как показано на скрине:
Если двумя словами, то мы тем самым нашему «Адаптеру 2» дали статический IP-адрес: 192.168.56.107 (можете поменять его на 192.168.56.101 например, или 192.168.56.110, без разницы). И теперь через этот адрес, Ubuntu будет видна из Windows.
17. Сохраняем изменения — F2 и выходим из редактора — F10.
18. Далее перезапускаем интерфейсы, например так:
или можете просто перезагрузить Ubuntu Server.
19. Теперь, если звезды на небе расположены правильно, то открыв браузер, и набрав в адресной строке:
вы увидите приветственную страницу установленного в составе LAMP (см.п. 4.2 выше) Apache2.
Либо можете законнектиться по SSH через 22 порт по этому же IP-адресу: 192.168.56.107