用于在远程共享之间复制文件的 SMB 协议

SMB protocol for copying files between remote shares

我需要从远程共享\s1 复制大量数据到共享\s2。我正在使用 robocopy,它使用 SMB 协议来复制文件。我的问题——协议是否允许直接将数据从 S1 复制到 S2,或者所有数据都必须通过 robocopy 所在的机器运行?

它使用 运行正在使用的机器。它从内存中的 source 复制数据(在当前机器上 - current)并从那里复制到 target.没有其他办法(在 source/target 上可能有一个 client/server 运行ning 并且客户端能够远程配置为直接打开到服务器的隧道并传输文件 - 但这里不是这种情况)。

您可以尝试 robocopy 一个大文件,从 sourcetarget 并使用 任务管理器 监控网络流量:

  • 当前 - 传入+传出
  • 来源 - 传出
  • 目标 - 传入

并查看以下任何匹配项(如预期):

  • 来源 - 传出 = 目标 - 传入

还有这些(其中 current 发挥作用):

  • 来源 - 传出 = 当前 - 传入
  • current - outgoing = target - incoming

要直接 robocopy(或任何其他文件传输工具)必须 运行 在 source目标.

已知服务器端复制仅适用于同一共享内的 to/from {子}目录;如果您正在考虑复制 ./between./ 共享并且可能跨服务器,那么这是您需要的另一个功能依靠加快您的传输;它称为 ODX,正如 Harry Johnston 所说,您需要相对较新的客户才能使用此功能 ==>

https://blogs.technet.microsoft.com/askcore/2014/06/26/is-offloaded-data-transfers-odx-working/

[./.]"The computer initiating the data transfer must be running Windows Server 2012 R2, Windows Server 2012, Windows 8.1, or Windows 8."[./.]

https://technet.microsoft.com/en-us/library/hh831628.aspx