当端口转发到 SSH 时无法在 FTP 中执行“ls”

Tua*_*xor 6 linux ftp ssh port-forwarding

当我在转发本地端口的同时登录 SSH 时,它是 21 FTP 端口,命令如下:

ssh -R 2101:localhost:21 root@192.168.100.5 -p 8288

成功登录后,我在 SSH 中发送了以下命令:

ftp ikiw@localhost -p 2101

该命令运行正常,我也成功顺利登录 FTP,但在 FTP 中时,我想查看该命令可用的文件列表ls,或者dir出现此错误:

ftp:无法连接到“::1:27394”:连接被拒绝

怎么了?当我运行命令时,FTP 是否会随机创建一个新端口ls

我想将我的本地 FTP 转发到我的 SSH/VPS,并正常从我的 SSH/VPS 运行 FTP 到我的本地计算机,有人可以帮助我并提供解决方案吗?非常感谢!:D

Ste*_*ris 28

FTP 是一个可怕的协议。是的,它使用多个端口;有控制端口,然后每次数据传输(lsget等等)都会打开第二个新的随机端口。

更糟糕的是,根据您使用的是 PASV 还是主动模式 FTP,服务器可能会尝试启动连接。

FTP 处理这样的转发并不容易。既然你有 ssh 连接,你不能使用吗sftp?这是一个类似 FTP 的协议,直接内置于 ssh 中,因此无需端口转发。

  • “FTP 是一个可怕的协议” – 相关:[*FTP 必须消亡*](https://mywiki.wooledge.org/FtpMustDie)。 (14认同)
  • FTP 是围绕当今不常见的用例而设计的:服务器到服务器的传输。客户端可以打开两个控制连接并告诉一个服务器将文件发送到另一个服务器。这样做的缺点是很难通过防火墙,任何曾经部署过基于 SIP 的电话基础设施的人都可能会意识到这些问题。 (3认同)