使用第三台服务器将文件从一台服务器传输到另一台服务器的最佳方式

使用第三台服务器将文件从一台服务器传输到另一台服务器的最佳方式

场景如下:

                   ssh  +------------+
                  +---->|  Server 2  |
 +------------+   |     +------------+
 |  Server 1  +---+
 +------------+   |     +------------+
                  +---->|  Server 3  |
                   ssh  +------------+

我可以通过 SSH 访问Server 1和(但不能通过到或反之访问)Server 2Server 3Server 2Server 3

我想要传输一个相当大的文件,2并且想知道通过充当协调器来3实现这一目标的最快方法是什么。1

更新:我确实在两个服务器之间建立了连接,但没有往返于服务器的 SSH 凭证。

答案1

您可以直接在两台服务器之间进行传输:

在您想要传输到的服务器上,在某个随机端口上以监听模式启动 nc:

ssh dst-server 'exec 1>/tmp/bah; nc -l -p 34001'

在您想要下载的服务器上,以客户端模式使用 nc 进行传输。您可以使用压缩,只需创建一个 gzip 管道:

ssh source-server 'nc dst-server 34001 < ./bah'

您会在 /tmp/bah 中找到您的文件

答案2

您可以使用'scp':

在服务器 1 上执行以下操作:

scp  user1@server2:/path/filename user3@server3:/path 

更多信息请见man scp

相关内容