我按照这个 DigitalOcean Tutorial在 Amazon-EC2 实例上创建了一个 FTP 服务器,我可以正常登录,这是唯一可以使用 shell 远程工作的部分(从服务器连接到 localhost 没有任何问题),但是任何命令我给 FTP 客户端(例如ls
或put source destination
)不起作用。本教程将服务器设置为在 PASSIVE 模式下工作,但是在在线寻找解决方案时,人们对模式 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 不是一个选项:我只是安装它以获得一个漂亮的客户端来执行基本操作和测试,但结果证明它是唯一可以做某事的客户端。
我在 AWS EC2 上托管的服务器遇到了这个问题。
我通过禁用listen_ipv6并在配置中添加以下属性来解决它,然后重新启动vsftpd