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

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

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

ssh -R 2101:本地主机:21[电子邮件受保护]-p 8288

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

ftp ikiw@localhost -p 2101

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

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

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

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

答案1

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

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

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

答案2

FTP 似乎正在尝试使用 IP6,但您仅通过 IP4 建立隧道。尝试使用 -4 选项启动 ftp。

相关内容