Информационные технологии (часть 2)

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. Сохраните его. Перегрузите оба браузера и убедитесь, что в них отразились изменения.