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 秒。
  • 访达会额外写文件和查询。它会在共享文件夹中写入隐藏的 .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 共享

如果两台电脑都有雷雳 3 或更新版本,或 USB4,用线缆连接它们就能得到一条直接的网络连接。Mac 称之为雷雳网桥,Windows 则显示一个新的以太网连接。因为没有路由器分配地址,每一端都会给自己分配一个以 169.254 开头的地址。

在 Windows 电脑上

通过线缆连接共享文件夹:

  1. 打开设置,选择网络和 Internet,然后选择以太网,再选择线缆的连接。
  2. 在网络配置文件类型下选择专用网络。Windows 会把新连接设为公用,这会隐藏电脑并阻止共享。
  3. 返回网络和 Internet,选择高级网络设置,然后选择高级共享设置。在专用网络下开启网络发现和文件和打印机共享。
  4. 在文件资源管理器中右键单击该文件夹,选择属性,然后打开共享选项卡,再单击共享。添加你的账户并设为读取/写入。
  5. 打开“终端”,运行 ipconfig。记下线缆的以太网适配器的 IPv4 地址。它以 169.254 开头。

在 Mac 上

连接到共享文件夹:

  1. 在访达中选择前往,然后选择连接服务器。
  2. 输入 smb:// 加上电脑的线缆地址,例如 smb://169.254.20.30,然后点按连接。
  3. 选择注册用户,用电脑账户的用户名和密码登录。如果电脑使用 Microsoft 账户,请使用它的电子邮件地址和密码,而不是 Windows PIN。
  4. 选择共享文件夹。它会在访达中打开。

反方向拷贝

从 Mac 共享文件夹,然后从 Windows 连接:

  1. 在 Mac 上打开系统设置,选择通用,然后选择共享,开启文件共享。
  2. 点按文件共享旁边的信息按钮,然后点按选项。在 Windows 文件共享下选择你的账户并输入它的密码。
  3. 在系统设置中选择网络,然后选择雷雳网桥,再点按详细信息。记下 TCP/IP 下的 IP 地址。
  4. 在电脑上,在文件资源管理器的地址栏中输入 \\ 加上 Mac 的地址,例如 \\169.254.40.50,然后用你的 Mac 用户名和密码登录。

对于线缆连接,雷雳网桥旁边的黄点和“自分配的 IP”是正常的。如果雷雳网桥或电脑上新的以太网连接根本没有出现,说明某个端口或线缆不支持雷雳或 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. 阻止访达向共享写入 .DS_Store 文件

这会更改一项访达设置。在 Mac 的“终端”中运行:

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

然后注销再重新登录。要撤销更改,运行同一命令,把 write 换成 delete,并去掉 -bool true。

5. 睡眠、重启或拔掉线缆后重新连接

任一台电脑睡眠或重启,或者线缆被拔出后,共享文件夹不会自己恢复。访达会提示与服务器的连接已中断,文件资源管理器会在共享上显示红色 X。

用同样的方式重新连接。在 Mac 上,连接服务器会列出最近使用的服务器。在 Windows 上,地址栏会记住地址。如果另一台电脑的 169.254 地址变了,请先找到新地址。关于保持共享连接的方法,请参阅共享文件夹在睡眠后断开。

签名和安全扫描能保护你的文件,所以我们不建议为了省时间而关闭它们。