客户端无法连接到 FTP 服务器(只有 filezilla 可以工作)

客户端无法连接到 FTP 服务器(只有 filezilla 可以工作)

我在 Amazon-EC2 实例上创建了一个 FTP 服务器,如下所示本 DigitalOcean 教程,我可以正常登录,这是使用 shell 远程工作的唯一部分(从服务器连接到本地主机没有任何问题),但我给 FTP 客户端的任何命令(例如lsput source destination)都不起作用。本教程将服务器设置为在被动模式下工作,但在网上寻找解决方案时,人们遇到了模式 X 的问题,解决方案是从模式 X 切换到模式 Y,反之亦然。


FTP(详细模式)提供两种不同的输出:

  • 当连接处于活动模式时
ftp> dir
500 Illegal PORT command.
ftp: bind: Address already in use
  • 当连接处于被动模式时
ftp> dir
227 Entering Passive Mode (addr, of, my, server, port1, port2).
ftp: connect: Connection timed out

虽然命令行 FTP 客户端无法执行除登录之外的任何操作,但 Filezilla 可以。我猜解决方案在于 filezilla 状态日志:

Status: Connecting to addr:21...
Status: Connection established, waiting for welcome message...
Status: Insecure server, it does not support FTP over TLS.
Status: Server does not support non-ASCII characters.
Status: Logged in
Status: Retrieving directory listing...
Status: Server sent passive reply with unroutable address. Using server address instead.
Status: Calculating timezone offset of server...
Status: Timezone offset of server is 0 seconds.
Status: Directory listing of "/" successful

供您参考,使用 Filezilla 不是一个选择:我只是为了有一个好看的客户端来执行基本操作和测试而安装它,但结果却是唯一可以做某事的客户端。

答案1

我在 AWS EC2 上托管的服务器上遇到了这个问题。

我通过禁用 listen_ipv6 并在配置中添加以下属性,然后重新启动 vsftpd 来解决这个问题

listen_ipv6=否
listen=是
pasv_enable=是
pasv_address=ec2-external-ip

相关内容