我有两个 Web 服务器,每个服务器都有一个公共 IP,它们与各种 SFTP 服务器建立出站 SFTP 连接以更新内容。我想为 SFTP 出站连接设置一个正向代理。有这样的代理吗?
答案1
您可以使用通用 SOCKS 代理代理 SSH 连接(因此也可以代理封装在 SSH 连接中的 SFTP)。我不知道有任何针对 SSH/SFTP 协议的特定代理。
(如果能暗示一下你的最终目的,回答起来会容易一些。想要代理的目的是什么?)
更新
使用 SSH 通过代理建立 SSH 隧道:
安装袜子在启动 SFTP 连接的客户端上。
在你的/etc/tsocks.conf设置以下内容:
server = 127.0.0.1 server_type = 5 server_port = 1080
打开到您的 SFTP 代理机器的后台 SSH 连接,如下所示:
ssh -D 1080 -f -n -N ssh-proxy.example.com
...或者如果您希望它在 5 分钟后自动关闭:
ssh -D 1080 -f -n ssh-proxy.example.com 'sleep 300'
(如果您通过脚本执行此操作,则可能需要添加
-i keyfile
客户端并在 SFTP 代理服务器中放入相应的条目,~/.ssh/authorized_keys
如果您想在无需用户注意的情况下通过脚本打开连接。)使用代理运行 SFTP 操作袜子包装器:
tsocks sftp destination-host.example.com
(此 SFTP 连接将在 destination-host.example.com 中查找,就好像它是从 ssh-proxy.example.com 发起的一样。)
替代方法但丁:
或者你可以安装但丁服务器(SOCKS代理服务器软件)在代理机器上并配置您的/etc/tsocks.conf连接到那里,而不是 127.0.0.1。然后只需使用袜子包装器,如上面的步骤 4 所示。如果这样做,您需要确保但丁服务器已配置,因此不允许未经授权的用户连接。
希望这可以帮助!