如何在沒有共用資料夾的情況下在 VirtualBox 虛擬機器和主機之間傳輸文件
共用資料夾功能不適用於 VirtualBox 虛擬機器中的作業系統?這是在主機和虛擬機器之間傳輸檔案的快速解決方法。
VirtualBox 具有連接埠轉送功能,可從主機甚至網際網路存取虛擬機器中執行的服務或應用程式。有了它,您可以在虛擬機器中設定一個快速的http或ftp伺服器,然後存取外部的檔案。或者,使用 scp 指令傳輸檔案。
第 1 步:設定連接埠轉發
首先,關閉您的虛擬機器。然後,開啟其“設定”。在彈出對話方塊中,導覽至「網路」-> 適配器 1 -> 進階 -> 連接埠轉送。
在接下來的「連接埠轉送規則」對話方塊中,按一下右上角的圖示來新增/刪除規則。然後,設定主機連接埠和對應的訪客連接埠。
- 例如,如果您想要透過SSH 或SCP 連接到虛擬機,則新增一條規則並將訪客連接埠設為22(如果使用預設SSH 連接埠),並將主機連接埠設定為未使用的端口。
- 就我而言,我想設定一個臨時的 Python http 伺服器,然後從主機進行訪問,因此我添加了一條規則並將主機和來賓連接埠都設為 8000。
步驟2:設定臨時http伺服器來傳輸文件
大多數 Linux 中都預先安裝了 Python。它有一個內建腳本,允許透過單一命令快速設定 http 伺服器。
只需啟動您的 Linux 虛擬機器即可。然後,右鍵單擊所需的資料夾並選擇“在終端機中開啟”或“在此處開啟終端”。最後,執行命令在虛擬機器上設定一個簡單的 http 伺服器:
python3 -m http.server最後,在主機中,開啟 Web 瀏覽器並前往 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) 協定來存取您的虛擬機器。在這種情況下,您需要將 guest 虛擬機器中的連接埠 22 對應到主機中任何未使用的連接埠(在我的例子中為 8088)。
大多數 Linux 儲存庫中都提供 SSH,Windows 可以從「設定」->「應用程式」->「選用功能」->「新增功能」->「OpenSSH 伺服器」安裝它。
透過在VM中運行SSH伺服器,主機可以運行以下命令來存取它:
ssh -p 8088 jim@localhost將連接埠號碼 8088 和虛擬機器的使用者名稱 jim 替換為您的。
或者,使用 scp 指令在主機和虛擬機器之間傳輸檔案。例如,將主機的 Downloads 資料夾中的「Sigil-2.0.1.tar.gz」套件傳送到虛擬機器使用者 jim 的主目錄:
scp -P 8088 /home/ji/Downloads/Sigil-2.0.1.tar.gz jim@localhost:或將「Sigil-2.0.1.tar.gz」從虛擬機器使用者 jim 的主目錄傳送到主機中的目前目錄:
scp -P 8088 jim@localhost:~/Sigil-2.0.1.tar.gz ./







