VSFTPD 命令 ls 挂起

VSFTPD 命令 ls 挂起

我有一个装有 vsftpd 的 ftp 服务器。如果我执行 ls 命令,它总是挂起。以前运行良好,但有时当我重新登录时就会出现这种情况。

user@serverubuntu:~$ ftp localhost
Connected to localhost.
220 SERVER FTP
Name (localhost:user): usernametes
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.

然后挂起。

下面是 /etc/ 中的 vsftpd.conf 配置

listen=YES
anonymous_enable=NO
anon_world_readable_only=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
nopriv_user=www-data
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
guest_enable=YES
guest_username=www-data
local_root=/var/www/vhosts/$USER/httpdocs/
user_sub_token=$USER
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd_user_conf
local_max_rate=2000000 # bytes per sec, 2Mbytes per sec
max_clients=50 # to avoid DOS attack, if you have a huge server, increase this..
ftpd_banner=SERVER FTP

服务器使用 ubuntu server 10.4 lucid。而 vsftpd 使用虚拟用户,这些用户是我从 mysql 获得的。

谢谢。

答案1

在公司场景中,此问题最常见的原因是您登录的用户的 FTP 主目录中的文件数量过高。(例如:数千张图像)

在该用户的 FTP 主目录中执行ls -1 | wc -l并验证是否是这种情况。如果是,除了选择更好的文件组织方式(并非总是一种选择)或避免通过 FTP 列出目录之外,没有太多可以做的事情。

相关内容