我有2台服务器(A,B)和一台外部服务器(C)。服务器C仅接受来自服务器B的请求(IP授权)。我需要尽快将服务器C中的文件下载到服务器A.当然,我可以将文件下载到服务器B,然后下载到服务器A,但文件非常大,时间非常关键。有没有办法直接从服务器C下载文件到A使用B作为"代理"某种程度?
答案 0 :(得分:0)
如果您通过HTTP或HTTPS进行文件传输,则可以在服务器B上安装类似tinyproxy的内容。像这样的东西可能是最快的&最简单的方法。
您可以采用的另一种方法是使用SSH port forwarding创建一个临时的“哑”代理,它具有支持您可能需要的几乎任何端口/协议的额外灵活性。假设您想使用scp复制文件。你可以这样做:
在服务器A上,沿以下行发出ssh命令:
$ ssh -L 2222:hostC.example.com:22 hostB.example.com
在服务器A的单独会话中,发出以下命令:
$ scp -P 2222 localhost:/ path / to / file / on / hostC / path / to / target
步骤#1正在从服务器A上的端口2222到服务器B创建隧道,这样当某些内容通过它连接时,服务器B将建立与服务器C上的端口22(SSH / SCP端口)的连接。
步骤#2通过连接到localhost上的端口2222来使用该隧道来请求所需的文件。
如果您考虑这种方法,您可能需要考虑在服务器A和服务器之间设置SSH授权密钥。 B这样就不需要提示您输入密码,并且需要使用-f和/或-n等参数(取决于所使用的SSH的版本)将第一个连接放入后台。