在不同物理位置和域的服务器之间复制文件

在不同物理位置和域的服务器之间复制文件

第一次在这里发帖,给你带来(可能)一个很大的挑战。我花了两天时间试图实现我的目标,但没有成功。

我需要将一大堆文件(“仅”约 900k 个文件,约 3TB 数据)从一台服务器复制到另一台服务器。问题是:这些服务器不在同一个网络/域中,也不在同一个地方。事实上,它们位于不同的城市,每个服务器都有自己的域。

我们可以通过终端服务器连接访问每台服务器(为了摆脱 IP,我们使用 NO-IP 服务),但无法使用此方法复制这么多文件。我们知道可以使用 FTP 和/或 VPN,但由于数据量巨大,它根本行不通(连接丢失、超时等...)。

所以,从这里,我发现 Powershell 可以解决这个问题,使用New-PSSessionand/or New-PSDrive。事实上,powershell 甚至要求输入用户/密码,但我无法将一台服务器连接到另一台服务器。更糟糕的是,我对 Powershell 一窍不通。

嗯,我看到的第一个要求是将服务器添加到信任列表中,并检查 WinRM 是否在两者上运行。我用winrm quickconfig和做了这件事Set-Item WSMan:\localhost\Client\TrustedHosts -Value 'no-ip.servername.here'。两个服务器上的两个命令都返回了良好的结果。

然后,尝试将服务器 A 连接到 B。在服务器 AI 上使用$server_b = New-PSSession -computername no-ip.servername.here -credential domain_b\administrador。此时,服务器 A 要求输入用户名和密码。我输入了,但 powershell 返回了很多关于身份验证、kerberos、错误的用户/密码等的错误。我无法提供屏幕截图,因为我们的服务器使用巴西葡萄牙语系统。

阅读更多关于New-PSSession,我尝试了很多选项,如身份验证、传输、connectionuri 和其他选项,但都没有成功......

那么,您能给我什么建议呢?

谢谢建议。

答案1

我做到了!哇!

我们走吧:

  1. 确保两台计算机上的 WinRM 服务均已启动并正在运行:get-service winrm。如果没有,请启动它:start-service winrm
  2. 确保端口 5985 已打开。使用调制解调器/路由器自行操作
  3. 确保您的客户端 NO-IP 地址在服务器上是受信任的:get-item wsman:\localhost\client\trustedhosts。如果不是,请添加它:set-item wsman:\localhost\client\trustedhosts -value 'client_no-ip_address' -force
  4. 确保您的服务器受到客户端信任,如上所示,但使用您的服务器无IP地址
  5. 在客户端,禁用一些安全检查:$option = new-pssessionoption -skipcacheck -skipcncheck
  6. 连接到您的服务器:$my_server = new-pssession -computername server_no-ip_address -credential domain\user -sessionoption $option

干得好!

相关内容