DirectConnect

指南

為什麼在 Mac 和 Windows 之間拷貝檔案這麼慢?

Mac 和 Windows 電腦之間拷貝緩慢,大多是兩個原因之一:拷貝走的是 Wi-Fi,或檔案夾裡有成千上萬個小檔案。先檢查拷貝使用的是哪個連線,再處理小檔案。

為什麼比想像中難

  • 很可能走的是 Wi-Fi。即使兩台電腦都接了有線網路或線材,用電腦名稱連線也可能找到 Wi-Fi 位址,於是每個檔案都要經過空中。
  • 小檔案是一個一個處理的。兩者都使用的 SMB 協定,會以個別的要求開啟、寫入並關閉每個檔案。含有成千上萬個小檔案的檔案夾大部分時間都在等待。在我們的測試中,Mac 透過 10 Gb/s 連線用 SMB 拷貝 20,000 個小檔案花了將近四分鐘。
  • 每個要求都要簽章。Windows 11 24H2 版預設要求所有連線使用 SMB 簽章,讓每個要求都多了工作量。
  • 檔案會被掃描。Microsoft Defender 會在檔案抵達電腦時檢查,任何程式第一次開啟檔案時也會檢查。在我們的測試中,Defender 尚未掃描過的 2,000 個小檔案,從電腦拷貝到 Mac 花了 18.8 秒。第二次拷貝只花了 1.3 秒。
  • Finder 會額外寫入檔案和查詢。它會在分享的檔案夾中寫入隱藏的 .DS_Store 檔案,瀏覽時還會要求圖示和預覽。
  • 連線本身可能不對稱。在一組使用 40 Gb/s 線材的 Windows 電腦和 Mac 上,還沒有用到檔案分享時,Windows 傳給 Mac 只有 12.0 Gb/s,而 Mac 回傳是 24.2 Gb/s。
  • 線材連線需要自己的設定。透過線材分享,代表兩台電腦都要設定新的網路設定檔、分享設定、帳號,以及一個以 169.254 開頭的位址。

1. 檢查拷貝使用的是哪個連線

在 Windows 電腦上,拷貝進行時開啟工作管理員,選擇效能。每個網路介面卡都有自己的圖表,所以你可以看出流量是走 Wi-Fi 還是乙太網路。線材會顯示為乙太網路介面卡。

如果 Wi-Fi 很忙碌,表示拷貝是透過 Wi-Fi 位址找到另一台電腦的。請中斷連線,然後用有線或線材連線的位址重新連線,而不是用電腦名稱。暫時關閉 Wi-Fi 也能確認拷貝沒有使用它。

2. 透過線材分享,而不是 Wi-Fi

如果兩台電腦都有 Thunderbolt 3 或更新版本,或 USB4,用線材連接就能建立一條直接的網路連線。Mac 稱它為 Thunderbolt 橋接器,Windows 則會顯示一個新的乙太網路連線。因為沒有路由器分配位址,每一邊都會自己指定一個以 169.254 開頭的位址。

在 Windows 電腦上

透過線材連線分享檔案夾:

  1. 開啟設定,選擇網路和網際網路,接著選擇乙太網路,然後選取線材的連線。
  2. 在網路設定檔類型下選取私人網路。Windows 會把新連線設為公用,這會隱藏電腦並封鎖分享。
  3. 回到網路和網際網路,選擇進階網路設定,然後選擇進階共用設定。在私人網路下開啟網路探索和檔案及印表機共用。
  4. 在檔案總管中以滑鼠右鍵按一下檔案夾,選擇內容,接著選擇共用索引標籤,然後選擇共用。加入你的帳戶,並設為讀取/寫入。
  5. 開啟「終端機」並執行 ipconfig。記下線材的乙太網路介面卡的 IPv4 位址。它以 169.254 開頭。

在 Mac 上

連線到分享的檔案夾:

  1. 在 Finder 中選擇前往,然後選擇連接伺服器。
  2. 輸入 smb:// 再加上電腦的線材位址,例如 smb://169.254.20.30,然後按一下連線。
  3. 選擇註冊使用者,用電腦帳戶的使用者名稱和密碼登入。如果電腦使用 Microsoft 帳戶,請使用它的電子郵件地址和密碼,而不是 Windows PIN。
  4. 選擇分享的檔案夾。它會在 Finder 中開啟。

反方向拷貝

從 Mac 分享檔案夾,再從 Windows 連線:

  1. 在 Mac 上開啟系統設定,選擇一般,接著選擇共享,然後開啟檔案共享。
  2. 按一下檔案共享旁的資訊按鈕,然後按一下選項。在 Windows 檔案共享下選取你的帳號並輸入它的密碼。
  3. 在系統設定中選擇網路,接著選擇 Thunderbolt 橋接器,然後選擇詳細資訊。記下 TCP/IP 下的 IP 位址。
  4. 在電腦上,於檔案總管的網址列輸入 \\ 再加上 Mac 的位址,例如 \\169.254.40.50,然後用你的 Mac 使用者名稱和密碼登入。

線材連線時,Thunderbolt 橋接器旁出現黃色圓點和「自行指定的 IP」是正常的。如果 Thunderbolt 橋接器或電腦的新乙太網路連線完全沒有出現,表示其中一個連接埠或線材不支援 Thunderbolt 或 USB4。

3. 壓縮小檔案檔案夾

一個大檔案的移動速度遠比成千上萬個小檔案快。壓縮檔案夾,拷貝壓縮檔,再到另一邊解壓縮。在 Mac 上,按住 Control 鍵並按一下檔案夾,選擇壓縮。在 Windows 上,以滑鼠右鍵按一下它,選擇壓縮成,然後選擇 ZIP 檔案。

如果你從 Windows 電腦拷貝,又無法先壓縮,robocopy 可以一次拷貝多個檔案,而不是一次一個。在電腦的「終端機」中執行:

robocopy "C:\Projects\Site" "\\169.254.40.50\Shared\Site" /E /MT:16

把兩個路徑換成你的檔案夾和 Mac 上分享的檔案夾。/E 會包含子檔案夾,/MT:16 一次拷貝 16 個檔案。它不會刪除任一個檔案夾中的任何東西。

4. 不讓 Finder 在分享中寫入 .DS_Store 檔案

這會變更一項 Finder 設定。在 Mac 的「終端機」中執行:

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

然後登出再重新登入。要復原,請執行同一個指令,把 write 換成 delete,並去掉 -bool true。

5. 睡眠、重新開機或拔掉線材後重新連線

任一台電腦睡眠或重新開機,或線材被拔掉後,分享的檔案夾不會自己恢復。Finder 說與伺服器的連線已中斷,檔案總管則在分享上顯示紅色叉叉。

請用同樣的方式重新連線。在 Mac 上,連接伺服器會列出最近使用的伺服器。在 Windows 上,網址列會記住位址。如果另一台電腦的 169.254 位址已經改變,請先找出新的位址。讓分享保持連線的方法,請參閱分享的檔案夾在睡眠後中斷。

簽章和安全性掃描能保護你的檔案,所以我們不建議為了節省時間而關閉它們。