我想通过 SSH 隧道搭载 FTP 来穿越跳转主机。FileZilla 作为客户端,但不想使用 WinSCP。我试过 SOCKS 代理,没有成功 :(。有人可以帮忙吗?请参阅下图了解更多信息
在此示例中,FTP 服务器是 192.168.1.200,我可以建立 SSH 连接的 Jumphost 是:10.10.10.40 我的 IP 是:172.16.1.1
答案1
我认为,即使存在方法,也没有什么简单的方法可以做到这一点。FTP 使用多个 TCP 连接,其中只有一个具有固定端口。数据传输的连接是动态创建的,这些数据连接中使用的端口(大多数情况下也是 IP 地址)在控制连接内交换。如果数据和控制连接只是通过某个隧道转发,那么有关端口分配的信息并不反映隧道后的实际端口,即需要通过隧道重写特定的 FTP 命令和响应。但是,SSH 仅转发连接,而不会像 FTP 那样在应用程序级别重写任何内容。
最好使用不太复杂的协议,即没有这种动态端口分配的协议。例如,使用 SFTP 而不是 FTP/FTPS 进行数据传输会有所帮助。当然,这需要另一端有匹配的服务器,而普通的 FTP 服务器无法做到这一点。