Поиск по сайту:

Как перенести файл между виртуальной машиной VirtualBox и хостом без общих папок

Функция общих папок не работает для вашей ОС на виртуальной машине VirtualBox? Вот быстрый обходной путь для передачи файлов между хостом и виртуальными машинами.

VirtualBox имеет функцию переадресации портов, которая позволяет получить доступ к службе или приложению, работающему на виртуальной машине, с хоста или даже из Интернета. С его помощью вы можете настроить быстрый http или ftp-сервер в виртуальной машине, а затем получить доступ к файлам снаружи. Или используйте команду scp для передачи файлов.

Шаг 1. Настройте переадресацию портов

Во-первых, выключите виртуальную машину. Затем откройте его «Настройки». Во всплывающем диалоговом окне перейдите в «Сеть» -> Адаптер 1 -> Дополнительно -> Переадресация портов.

В следующем диалоговом окне «Правила переадресации портов» щелкните значки в правом углу, чтобы добавить/удалить правила. Затем установите хост-порт и соответствующий гостевой порт.

  • Например, если вы хотите использовать SSH или SCP для виртуальной машины, добавьте правило и установите гостевой порт на 22 (если используется порт SSH по умолчанию) и установите порт хоста на тот, который не используется.
  • В моем случае я хочу настроить временный http-сервер Python, а затем получить доступ с хоста, поэтому я добавил правило и установил для хоста и гостевого порта значение 8000.

Шаг 2. Настройте временный http-сервер для передачи файлов.

Python предустановлен в большинстве Linux. Имеет встроенный скрипт, позволяющий быстро настроить http-сервер одной командой.

Просто загрузите виртуальную машину Linux. Затем щелкните правой кнопкой мыши нужную папку и выберите «Открыть в терминале» или «Открыть терминал здесь». Наконец, запустите команду для настройки простого http-сервера на виртуальной машине:

python3 -m http.server

Наконец, на хост-компьютере откройте веб-браузер и перейдите по адресу localhost:8000. Затем вы можете получить доступ (загрузить) ко всем файлам в этой папке на виртуальной машине.

Если вы хотите создать временный http-сервер с поддержкой загрузки, установите модуль uploadserver на свою виртуальную машину с помощью команды:

pip install uploadserver

В некоторых Linux вы можете добавить флаг --break-system-packages. Итак, команда будет:

pip install uploadserver --break-system-packages

Затем запустите http-сервер с функцией загрузки, выполнив команду:

python3 -m uploadserver

Наконец, на хосте перейдите по адресу localhost:8000/upload, чтобы загрузить файлы на виртуальную машину.

Шаг 3. (Необязательно) Используйте SSH/SCP.

По выбору вы также можете использовать протокол безопасной оболочки (SSH) для доступа к вашей виртуальной машине. В этом случае вам необходимо сопоставить порт 22 в гостевой системе с любым неиспользуемым портом (в моем случае 8088) на хосте.

SSH доступен в большинстве репозиториев Linux, и Windows может установить его из «Настройки» -> «Приложения» -> «Дополнительные функции» -> «Добавить функцию» -> «Сервер OpenSSH».

Запустив SSH-сервер на виртуальной машине, хост-машина может выполнить следующую команду для доступа к нему:

ssh -p 8088 jim@localhost

Замените номер порта 8088 и имя пользователя виртуальной машины jim на свое.

Или используйте команду scp для передачи файлов между хостом и виртуальной машиной. Например, отправьте пакет «Sigil-2.0.1.tar.gz» из папки «Загрузки» хоста в домашний каталог пользователя виртуальной машины Джима:

scp -P 8088 /home/ji/Downloads/Sigil-2.0.1.tar.gz jim@localhost:

Или отправьте «Sigil-2.0.1.tar.gz» из домашнего каталога пользователя виртуальной машины Джима в текущий каталог на хост-компьютере:

scp -P 8088 jim@localhost:~/Sigil-2.0.1.tar.gz ./

Статьи по данной тематике