在 vsftpd 服务器环境中,从 nfs 挂载点共享各种目录,我可以毫无问题地登录,但是当我发送第一个“ls”时,vsftp 会给我目录列表:
lftp [email protected]:~> ls
-rw-rw-rw- 1 1160 1016 392 Jun 06 09:28 test.gif
但没有再次给我 shell(lftp 客户端)。在服务器日志中我可以看到最后一条消息是:
"150 Here comes the directory listing."
为什么会发生这种情况?
答案1
检查您的防火墙设置,可能您不允许 PASV 端口通过,或者可能是端口 20 ftp-data。尝试在防火墙上打开 TCP 端口 50000-55000,并将以下内容添加到您的 vsftpd.conf。
pasv_min_port=50000
pasv_max_port=55000
如果使用主动模式,那么您只需要端口 20,如果使用被动模式,那么您应该在防火墙上设置这些端口并在 ftp 配置中进行匹配。
以下是关于主动与被动的简要概述 http://slacksite.com/other/ftp.html
答案2
我在 Amazon EC2 Ubuntu 机器上遇到了同样的问题。我在 vsftpd.conf 中为被动模式设置了端口 50000-51000,并且必须在安全组 AWS 防火墙设置上打开这些端口。