2. Взаимодействие гостевой ОС и хоста
Введение
Целью данной лабораторной работы изучение принципов взаимодействия виртуальной и физической машин.
Запуск веб-сервера
Совет: для того, чтобы копировать текст команд с физической машины на виртуальную включите двунаправленный обмен в меню виртуальной машины «Устройства»-«Общий буфер обмена».
В терминале виртуальной машины выполните команду:
python3 -m http.server 8080
Данная команда запустить веб-сервер, который будет выдавать по протоколу http содержимое текущей папки. Она закончит свое выполнение только после явной остановки сервера (например, с помощью сочетания клавиш Ctrl-C
).
Запустите браузер в виртуальной машине и перейдите по адресу http://127.0.0.1:8080/
. Здесь 127.0.0.1
это зарезервированный ip-адрес, означающий локальный компьютер, 8080
– так называемый порт, на котором запущен сервер. Порт это своего рода дополнение к ip-адресу, позволяющее различать программы, работающие по сети на одном компьютере.
Откройте программу Текстовый редактор
, наберите в нем произвольный html документ (например, наберите свое ФИО без каких-либо тегов) и сохраните в файле index.html
.
Совет. По-умолчанию файл будет сохранен в домашнем каталоге пользователя. В этом же каталоге у нас запущен и веб-сервер, но не лишним будет это проверить оба эти обстоятельства.
Обновите страницу в браузере.
Проброс портов
Запустите браузер на физической машине и проверьте доступность сервера.
В «Oracle VM VirtualBox Менеджер» нажмите кнопку настроить для виртуальной машины. Перейдите в раздел «Сеть». Для виртуальной машины по-умолчанию используется тип подключения NAT (Network Address Translation – преобразование сетевых адресов). Это означает, что все сетевые запросы с виртуальной машины VirtualBox транслирует, т.е. выбирает другой порт и отправляет их в сеть с адреса физического компьютера. Это позволяет пользоваться сетью на виртуальной машине, но не позволяет выполнять к ней запросы (с физического компьютера или других устройств сети).
Для того, чтобы можно было делать запросы к серверам виртуальной машины, нужно настроить проброс портов. Разверните элементы настройки сети, скрытые по словом «Дополнительно», нажмите кнопку «Проброс портов». В открывшемся окне «Правила проброса портов» нажмите иконку с зеленым крестиком, чтобы добавить правило. В появившейся строке заполните колонки «Имя» (имя правила на ваш вкус), «Порт хоста» – 8001, «Порт гостя» – 8080. Сохраните настройки.
В браузере на физической машине перейдите по адресу http://127.0.0.1:8001/
.
Общие папки
Редактировать документы (например, html-документы) удобнее на физическом компьютере. Сервер удобнее располагать на виртуальной машине. Теперь наша задача сделать общую папку для документов, доступную и на физической и на виртуальной машинах.
В «Oracle VM VirtualBox Менеджер» нажмите кнопку настроить для виртуальной машины и перейдите в раздел «Общие папки». Нажмите иконку с зеленым крестиком чтобы добавить общую папку. В поле «Путь к папке» укажите путь к папке с документами на физическом компьютере. Придумайте имя для этой папки. Поставьте галочки «Авто-подключение» и «Создать постоянную папку». Укажите точку подключения /home/osboxes/server
.
На виртуальной машине в домашнем каталоге должна появиться папка server. Однако, у пользователя osboxes
не будет к ней доступа. Прочитайте статью Права доступа к файлам в linux. Для получения доступа введите пользователя osboxes
в группу vboxsf
командой sudo adduser $USER vboxsf
(где $USER
– служебная переменная, вместо которой будет подставлено имя текущего пользователя) и перезапустите виртуальную машину.
Переместите файл index.html
в папку /home/osboxes/server
и перезапустите веб-сервер в этой папке. Убедитесь, что страница открывается в браузере на виртуальной и физической машинах.
На физической машине отредактируйте файл index.html
. Сохраните его. Перегрузите оба браузера и убедитесь, что в них отразились изменения.