怎麼往虛擬機里傳文件:虛擬機內外文件傳輸終極指南
在使用虛擬機(Virtual Machine)進行開發、測試、學習或運行特定軟體時,一個核心且頻繁的需求便是如何在主機(Host Machine)與虛擬機(Guest Machine)之間高效、安全地傳輸文件。無論您使用的是VirtualBox、VMware Workstation/Fusion、Hyper-V 還是 Parallels Desktop,文件傳輸的方法多種多樣。本文將為您詳細介紹各種傳輸方式,從最簡單便捷的拖放,到穩定高效的網路共享,助您輕鬆解決虛擬機文件傳輸難題。
虛擬機文件傳輸的核心利器:增強功能包/虛擬機工具
在深入探討具體的傳輸方法之前,我們首先需要了解一個對大多數文件傳輸方式至關重要的組件:虛擬機增強功能包(Guest Additions)或虛擬機工具(VMware Tools/Parallels Tools/Integration Services)。
- VirtualBox: 稱為 Guest Additions。
- VMware Workstation/Fusion: 稱為 VMware Tools。
- Hyper-V: 稱為 Integration Services。
- Parallels Desktop: 稱為 Parallels Tools。
它們的作用: 這些工具包是安裝在虛擬機操作系統內部的一套驅動程序和系統服務。安裝它們后,可以顯著提升虛擬機的性能、改善圖形顯示、實現滑鼠無縫集成、時間同步,並激活諸如共享文件夾、拖放、複製粘貼等關鍵的文件傳輸功能。
如何安裝: 通常在虛擬機啟動后,您可以通過虛擬機軟體的菜單欄找到安裝選項。例如:
- VirtualBox: 啟動虛擬機后,點擊菜單欄的 「設備」 -> 「安裝增強功能CD鏡像…」,然後進入虛擬機內部,找到掛載的光碟並運行安裝程序。
- VMware Workstation/Fusion: 啟動虛擬機后,點擊菜單欄的 「VM」 -> 「Install VMware Tools…」(Windows)或 「Install Parallels Tools…」(Mac),然後按照虛擬機內部的提示完成安裝。
- Hyper-V: 對於Windows虛擬機,通常是自動開啟或通過 「操作」 -> 「插入集成服務安裝磁碟」。對於Linux虛擬機,可能需要手動安裝`linux-tools-virtual`包。
方法一:共享文件夾 (最常用、推薦)
共享文件夾是主機與虛擬機之間進行文件傳輸最常用、最便捷的方式之一。它允許您將主機上的一個文件夾映射到虛擬機內部,從而實現雙向訪問。
原理與優勢
通過共享文件夾功能,主機上的指定目錄會被虛擬機識別為一個網路驅動器或共享目錄。您可以像訪問本地文件一樣在虛擬機內對這個目錄進行讀寫操作,主機也能實時看到虛擬機對其中文件的更改。 優勢: 操作直觀、雙向傳輸、文件管理方便、支持大文件傳輸。
VirtualBox 共享文件夾設置
- 確保安裝了Guest Additions。
- 啟動您的VirtualBox虛擬機。
- 在虛擬機窗口的菜單欄中,點擊 「設備」 -> 「共享文件夾」 -> 「共享文件夾設置…」。
- 在彈出的「共享文件夾」對話框中,點擊右側的 「添加新的共享文件夾」 圖標(通常是一個文件夾帶加號的圖標)。
-
在「添加共享文件夾」對話框中:
- 「文件夾路徑」: 點擊下拉箭頭選擇 「其他…」,然後瀏覽並選擇主機上您要共享的文件夾。
- 「文件夾名稱」: 可以自定義一個名稱,虛擬機內部會以此名稱識別。
- 「只讀分配」: 如果您不希望虛擬機修改共享文件,可以勾選此項。
- 「自動掛載」: 強烈建議勾選此項,虛擬機啟動後會自動掛載此共享文件夾。
- 「固定分配」: 勾選此項使共享永久生效。
- 點擊 「確定」 保存設置。
-
在虛擬機內部訪問:
- Windows 虛擬機: 打開「文件資源管理器」,在「網路位置」或「這台電腦」下會看到一個名為`\VBOXSVR`的共享,您的共享文件夾會出現在其下方,例如`\VBOXSVRMyShareFolder`。
-
Linux 虛擬機: 共享文件夾通常會掛載到 `/media/sf_<文件夾名稱>` 目錄下(例如 `/media/sf_MyShareFolder`)。如果無法訪問,可能需要將當前用戶添加到`vboxsf`用戶組:
sudo usermod -aG vboxsf $(whoami)
然後重啟虛擬機。
VMware Workstation/Fusion 共享文件夾設置
- 確保安裝了VMware Tools。
- 關閉虛擬機(或在運行時修改,但重啟效果更佳)。
- 在VMware Workstation/Fusion界面,選中您的虛擬機,然後點擊 「編輯虛擬機設置」(或 「虛擬機」 -> 「設置」)。
- 在設置窗口中,選擇 「選項」 標籤頁,然後點擊左側的 「共享文件夾」。
- 選擇 「總是啟用」 或 「在會話期間啟用」。
- 點擊 「添加…」 按鈕。
- 在嚮導中,點擊 「下一步」,然後點擊 「瀏覽…」 選擇主機上要共享的文件夾路徑。
- 輸入一個共享名稱,勾選 「啟用此共享」。如果您不希望虛擬機修改共享文件,可以勾選 「只讀」。
- 點擊 「完成」 和 「確定」 保存設置。
-
在虛擬機內部訪問:
- Windows 虛擬機: 打開「文件資源管理器」,在「網路位置」或「這台電腦」下,會看到一個名為「VMware Shared Folders」的網路位置,您的共享文件夾會出現在其下方。例如,您可以通過`\vmware-hostShared Folders`訪問。
- Linux 虛擬機: 共享文件夾通常會掛載到 `/mnt/hgfs/<共享名稱>` 目錄下(例如 `/mnt/hgfs/MyShareFolder`)。
Hyper-V 共享文件夾 (增強會話模式)
Hyper-V 的共享文件夾概念與其他虛擬化軟體略有不同。它通常通過增強會話模式(Enhanced Session Mode)來實現類文件傳輸功能,這本質上是RDP(遠程桌面協議)的延伸,允許您在虛擬機和主機之間複製粘貼文件,或通過RDP映射驅動器。
-
確保虛擬機開啟了增強會話模式:
- 對於Windows虛擬機,默認已開啟且安裝了Integration Services。
- 如果虛擬機關閉,在Hyper-V管理器中,右鍵點擊虛擬機,選擇 「設置」,在 「集成服務」 下勾選 「來賓服務」。
- 連接到虛擬機時,選擇 「顯示選項」。
- 在 「本地資源」 選項卡下,點擊 「詳細信息…」。
- 勾選 「驅動器」,然後選擇您希望映射到虛擬機中的主機驅動器。
- 連接虛擬機后,在虛擬機的文件資源管理器中,您會在「此電腦」下看到這些映射的驅動器。您可以通過拖放或複製粘貼的方式進行文件傳輸。
Parallels Desktop 共享文件夾設置
- 確保安裝了Parallels Tools。
- 在macOS菜單欄中,點擊Parallels圖標,選擇 「配置…」 (或在「虛擬機」菜單中選擇 「配置…」)。
- 在配置窗口中,選擇 「選項」 標籤頁,然後點擊左側的 「共享」。
- 您可以選擇 「共享用戶文件夾」 (自動共享macOS用戶的公共文件夾、下載、文檔等)或 「共享所有Mac磁碟」。
- 如果您需要自定義共享文件夾,點擊 「添加…」 按鈕,然後選擇macOS上的文件夾,並設置一個虛擬機內的共享名稱。
-
在虛擬機內部訪問:
- Windows 虛擬機: 在「文件資源管理器」中,您會看到一個映射的網路驅動器(通常是Z:盤),其中包含了您共享的Mac文件夾。
- Linux 虛擬機: 共享文件夾通常掛載在 `/media/psf/<共享名稱>` 目錄下。
方法二:拖放 (Drag & Drop) 與 複製粘貼 (Clipboard Sharing)
這是最直觀、最快捷的文件傳輸方式,尤其適用於傳輸少量或較小的文件、文本內容。
原理與前提
拖放和複製粘貼功能依賴於前面提到的虛擬機增強功能包/工具。這些工具在主機和虛擬機之間建立了虛擬的通信通道,允許您直接操作文件和剪貼板。
設置與使用
- 確保已安裝並配置好虛擬機增強功能包/工具。
-
啟用拖放/複製粘貼功能:
- VirtualBox: 在虛擬機設置中,選擇 「常規」 -> 「高級」 標籤頁,將 「拖放」 和 「共享粘貼板」 都設置為 「雙向」。
- VMware Workstation/Fusion: 在虛擬機設置中,選擇 「選項」 -> 「客戶機隔離」,勾選 「啟用拖放」 和 「啟用複製和粘貼」。
- Hyper-V: 對於Windows虛擬機,在增強會話模式下默認支持複製粘貼。拖放通常通過RDP映射驅動器間接實現。
- Parallels Desktop: 默認開啟,無需額外設置。
-
使用方法:
- 拖放: 直接將主機上的文件或文件夾拖拽到虛擬機窗口內,或將虛擬機內的文件拖拽到主機桌面或文件夾中。
- 複製粘貼: 在主機上複製(Ctrl+C/Cmd+C)文本或文件,然後在虛擬機內粘貼(Ctrl+V/Cmd+V)。反之亦然。
局限性
- 文件大小限制: 某些虛擬化軟體的拖放和複製粘貼對文件大小有限制,不適合傳輸非常大的文件。
- 穩定性: 偶爾可能出現失靈的情況,需要重啟虛擬機或重新連接會話。
方法三:網路共享 (SMB/NFS) - 穩定高效
如果您的虛擬機與主機在同一個網路環境中,或者您需要更穩定的、類似於區域網的文件傳輸方式,網路共享(如Windows的SMB/CIFS共享,Linux的NFS或Samba)是一個非常可靠的選擇。
原理與優勢
主機和虛擬機在網路上相互識別,通過標準的網路文件共享協議(如SMB/CIFS用於Windows,NFS用於Linux)進行文件訪問。這與您在真實區域網中共享文件的方式類似。 優勢: 穩定、速度快(取決於網路帶寬)、支持大文件、雙向傳輸、無需依賴虛擬機工具包(但網路驅動器需要)。
前提條件
- 網路連接: 確保虛擬機和主機之間的網路連接是通暢的。通常推薦將虛擬機網路適配器設置為「橋接模式(Bridged Adapter)」,這樣虛擬機將獲得與主機在同一網段的獨立IP地址。如果使用NAT模式,可能需要進行埠轉發。
- IP地址: 確保主機和虛擬機都能相互Ping通對方的IP地址。
- 防火牆: 關閉或配置主機和虛擬機的防火牆,允許文件共享埠(SMB通常是TCP 445)。
Windows 虛擬機與 Windows 主機之間
-
在主機上創建共享文件夾:
- 右鍵點擊您要共享的文件夾,選擇 「屬性」。
- 切換到 「共享」 標籤頁。
- 點擊 「高級共享…」,勾選 「共享此文件夾」。
- 點擊 「許可權」,添加或設置適當的用戶和許可權(例如,給「Everyone」讀寫許可權,或給特定用戶讀寫許可權)。
- 點擊 「確定」。
-
在虛擬機內部訪問共享:
- 打開「文件資源管理器」。
-
在地址欄輸入主機的IP地址或計算機名,格式為:
\主機IP地址共享文件夾名或\主機計算機名共享文件夾名。
例如:\192.168.1.100MyShare - 輸入主機的用戶名和密碼進行驗證。
- 成功連接后,您可以像訪問本地文件一樣進行文件傳輸。
- 您也可以右鍵點擊「此電腦」,選擇 「映射網路驅動器」,將共享文件夾映射為一個盤符。
Windows 虛擬機與 Linux 主機/虛擬機之間 (Samba)
如果您需要Windows虛擬機訪問Linux主機的共享,或者Linux虛擬機訪問Windows主機的共享,通常需要使用Samba服務。
-
在Linux上安裝並配置Samba:
sudo apt update(Debian/Ubuntu)
sudo apt install samba
配置 `/etc/samba/smb.conf` 文件,添加共享目錄和許可權。
sudo service smbd restart -
在Windows虛擬機中訪問:
同上,使用\Linux主機IP地址共享名的格式訪問。
Linux 虛擬機與 Linux 主機/虛擬機之間 (NFS)
對於純Linux環境,NFS(Network File System)是更常用的文件共享協議。
-
在Linux主機上安裝並配置NFS伺服器:
sudo apt install nfs-kernel-server(Debian/Ubuntu)
配置 `/etc/exports` 文件,指定共享目錄和客戶端許可權。
sudo systemctl restart nfs-kernel-server -
在Linux虛擬機中掛載NFS共享:
sudo apt install nfs-common
sudo mount 主機IP地址:/共享目錄 /掛載點
例如:sudo mount 192.168.1.100:/home/user/share /mnt/nfs_share
配置網路模式選擇
- 橋接模式 (Bridged Adapter): 虛擬機直接連接到物理網路,擁有獨立的IP地址,與主機和區域網內的其他設備處於平等地位,最適合網路共享。
- NAT模式 (Network Address Translation): 虛擬機通過主機進行網路訪問,主機充當路由器。虛擬機有一個私有IP地址,不能直接從外部訪問。要實現外部訪問,需要進行埠轉發。通常不適合直接的主機-虛擬機網路共享,但可以實現虛擬機訪問互聯網。
- 僅主機模式 (Host-Only Adapter): 創建一個僅限主機和虛擬機之間通信的私有網路。沒有外部網路連接,但可以實現主機與虛擬機之間的本地網路共享。
方法四:FTP/SFTP 伺服器傳輸
對於需要定期、大量傳輸文件,或需要在非圖形界面下進行文件傳輸的場景,搭建FTP(文件傳輸協議)或SFTP(SSH文件傳輸協議)伺服器是一個專業的解決方案。
原理與適用場景
在虛擬機內部安裝一個FTP或SFTP伺服器,然後從主機上使用FTP/SFTP客戶端軟體(如FileZilla、WinSCP)連接到虛擬機進行文件上傳或下載。 適用場景: 大文件傳輸、自動化腳本傳輸、跨平台傳輸、遠程管理。
配置步驟 (以SFTP為例)
-
在虛擬機內部安裝SSH伺服器(包含SFTP):
Windows 虛擬機: 安裝OpenSSH Server。
Linux 虛擬機:sudo apt install openssh-server(Debian/Ubuntu) - 確保SSH服務正在運行。
- 獲取虛擬機的IP地址。 (確保虛擬機網路模式允許從主機訪問,如橋接模式或NAT模式下的埠轉發)。
-
在主機上使用SFTP客戶端軟體:
- 打開FileZilla、WinSCP等SFTP客戶端。
- 輸入虛擬機的IP地址、用戶名、密碼和埠號(SSH/SFTP默認埠是22)。
- 連接成功后,您可以在客戶端軟體的界面中拖放文件或使用上傳/下載功能進行傳輸。
方法五:雲存儲服務 (如 OneDrive, Google Drive, Dropbox)
如果您有穩定的互聯網連接,使用雲存儲服務是最簡單、跨平台且無需任何複雜設置的文件傳輸方式。
優勢與局限
優勢: 操作簡單、跨平台、不受虛擬機網路模式限制、無需額外配置。 局限: 依賴互聯網連接、受雲服務空間限制、傳輸速度受限於網速。
使用方法
- 在主機上將要傳輸的文件上傳到您的雲存儲服務(例如OneDrive、Google Drive、Dropbox)。
- 在虛擬機內部,通過瀏覽器訪問您的雲存儲服務網頁版,或者安裝相應的桌面同步客戶端。
- 從雲存儲中下載文件到虛擬機。
- 反之亦然,您可以從虛擬機上傳文件到雲存儲,然後在主機上下載。
方法六:USB 設備直通/連接
當您想通過物理USB設備(如U盤、移動硬碟)傳輸文件時,可以直接將USB設備連接到虛擬機。
原理與優勢
虛擬機軟體可以將連接到主機的物理USB設備「直通」給虛擬機,使得虛擬機像直接連接到該USB設備一樣。 優勢: 簡單直接,無需網路配置,適用於沒有網路連接或大量數據傳輸的場景。
配置步驟
- 將USB設備插入主機。
- 啟動虛擬機。
-
在虛擬機窗口的菜單欄中:
- VirtualBox: 「設備」 -> 「USB」,然後選擇您要連接的USB設備。
- VMware Workstation/Fusion: 「VM」 -> 「可移動設備」 -> 「您要連接的USB設備」 -> 「連接 (與主機斷開連接)」。
- Hyper-V: Hyper-V 對 USB 直通的支持相對較弱,通常需要使用增強會話模式中的「本地資源」來映射。對於USB攝像頭等特殊設備,可能需要專用硬體。
- Parallels Desktop: 在菜單欄點擊Parallels圖標,選擇 「設備」 -> 「USB與藍牙」,然後選擇要連接的USB設備。
- 一旦連接成功,USB設備將在虛擬機內部顯示為一個可移動磁碟。
注意事項
- 確保虛擬機設置中啟用了USB控制器(USB 2.0/3.0),並且主機上安裝了相應的驅動。
- USB設備在連接到虛擬機后,將從主機上斷開連接。
方法七:虛擬硬碟/ISO鏡像掛載
雖然不常用於日常小文件傳輸,但對於傳輸大型數據集或軟體安裝包時,掛載虛擬硬碟或製作ISO鏡像也是一種可行的方法。
原理與適用場景
- 虛擬硬碟掛載: 創建一個新的虛擬硬碟文件(如.vmdk, .vdi),將其連接到主機和虛擬機(如果虛擬機支持多塊硬碟),或在虛擬機之間共享。
- ISO鏡像製作與掛載: 將需要傳輸的文件打包成一個ISO鏡像文件,然後將這個ISO文件作為虛擬光碟掛載到虛擬機中。
- 適用場景: 傳輸大型安裝包、系統備份、在多個虛擬機之間共享通用數據。
虛擬硬碟掛載
- 在主機上,使用虛擬機軟體創建一個新的空白虛擬硬碟文件(例如,不分配給任何操作系統)。
- 將這個虛擬硬碟文件添加到虛擬機的硬體配置中(作為第二個或更多個硬碟)。
- 啟動虛擬機,進入磁碟管理工具(Windows)或使用`fdisk`/`gparted`(Linux)對新添加的虛擬硬碟進行分區和格式化。
- 格式化后,您就可以像使用普通硬碟一樣,在虛擬機內部將文件傳輸到這個虛擬硬碟中。
- 如果您需要將文件傳回主機或傳輸到另一個虛擬機,可以關閉虛擬機,將此虛擬硬碟文件從當前虛擬機配置中移除,再添加到目標虛擬機或使用相關工具訪問。
ISO鏡像製作與掛載
- 在主機上製作ISO鏡像: 將您要傳輸的所有文件和文件夾放入一個單獨的文件夾中,然後使用刻錄軟體(如Nero Burning ROM、UltraISO、PowerISO)或壓縮軟體(如7-Zip、WinRAR,它們通常支持創建ISO)將這個文件夾製作成一個ISO鏡像文件。
-
在虛擬機中掛載ISO鏡像:
- 啟動虛擬機。
- 在虛擬機軟體菜單欄中找到「CD/DVD驅動器」或「光碟」,選擇 「選擇/連接ISO鏡像文件」,然後瀏覽並選擇您剛剛製作的ISO文件。
- ISO文件將被虛擬機識別為一個虛擬光碟,您可以像讀取普通光碟一樣訪問裡面的文件。
SEO小貼士:在創建SEO內容時,除了關鍵詞密度和相關性,提供詳盡的步驟、多種解決方案以及針對不同用戶群體(不同虛擬機軟體)的定製化內容是提升文章價值和搜索引擎排名的關鍵。長篇幅、高質量、有深度和廣度的內容更容易獲得搜索引擎的青睞。同時,合理利用標題標籤(H1-H4)和列表標籤(ul, ol)可以提高文章的可讀性和結構性。
虛擬機文件傳輸常見問題解答 (FAQ)
Q1: 為何我的虛擬機無法識別共享文件夾?
A: 最常見的原因是沒有安裝或正確安裝虛擬機增強功能包(VirtualBox Guest Additions / VMware Tools等)。此外,請檢查共享文件夾的設置是否正確(路徑、許可權、自動掛載是否勾選),以及虛擬機內部的用戶是否有訪問共享的許可權。對於Linux虛擬機,可能需要將當前用戶添加到`vboxsf`或`hgfs`用戶組。
Q2: 如何提高虛擬機與主機之間的文件傳輸速度?
A: 確保主機和虛擬機都安裝了最新的增強功能包/工具。使用共享文件夾或網路共享(橋接模式)通常比拖放和複製粘貼更快。確保主機硬碟是SSD,因為硬碟I/O是文件傳輸速度的關鍵瓶頸。此外,避免同時運行過多虛擬機,以減少系統資源競爭。
Q3: 拖放或複製粘貼功能為何失效?
A: 確認虛擬機增強功能包/工具已正確安裝且版本兼容。檢查虛擬機設置中是否已將拖放和共享粘貼板功能設置為「雙向」或「啟用」。有時,傳輸的文件過大或內容複雜(如大量格式文本)也可能導致功能失效,嘗試分批傳輸或使用其他方法。
Q4: 虛擬機網路模式如何影響文件傳輸?
A:
- 橋接模式: 最適合網路共享,虛擬機直接獲得與主機同網段的IP,可像獨立設備一樣與主機和區域網其他設備通信。
- NAT模式: 虛擬機處於主機網路地址轉換之後,無法直接被主機或外部設備訪問(除非設置埠轉發),不適合主動從主機向虛擬機網路共享,但虛擬機可以訪問主機的網路資源。
- 僅主機模式: 創建一個完全獨立於外部網路的私有網路,僅供主機與虛擬機通信。可用於主機與虛擬機之間的本地網路共享,但虛擬機無法訪問互聯網或外部區域網。
Q5: 如果我想從虛擬機傳文件到主機怎麼辦?
A: 上述大部分方法都是雙向的,可以從虛擬機向主機傳輸文件:
- 共享文件夾: 將文件複製到虛擬機內的共享文件夾,主機即可訪問。
- 拖放/複製粘貼: 將虛擬機內的文件或文本拖拽/複製到主機桌面或文件夾。
- 網路共享: 在虛擬機內設置共享文件夾,然後從主機訪問。
- FTP/SFTP: 在主機上作為客戶端連接到虛擬機內的FTP/SFTP伺服器,下載文件。
- 雲存儲: 在虛擬機內上傳文件到雲存儲,然後在主機上下載。
- USB設備: 將文件複製到已連接到虛擬機的USB設備上,然後將USB設備重新連接到主機。
總結
虛擬機與主機之間的文件傳輸是日常使用中不可或缺的一環。通過本文的詳細介紹,相信您已經掌握了各種傳輸方法,從簡單的拖放,到強大的共享文件夾,再到專業的網路共享和雲存儲。選擇最適合您當前場景和文件大小的方法,並始終確保您的虛擬機增強功能包/工具是最新且已正確安裝,這將大大提升您的虛擬機使用體驗和工作效率。祝您傳輸愉快!

