查了网上很多种说法,折腾了两三个小时终于成功了。应该还是每个人的环境不一致,别人能成功的方法到我这儿就不行。
CentOS 7.8,vsftpd 3.0.2。
服务端关闭了selinux和firewall。
安装
yum -y install vsftpd
设置
新建用户和目录并设置所有者:
mkdir /home/ftpdir
useradd -d /home/ftpdir -s /bin/bash ftpuser
passwd ftpuser
chown ftpuser:ftpuser /home/ftpdir
vi /etc/vsftdp/vsftpd.conf,修改设置如下:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=NO
userlist_file=/etc/vsftpd/user_list
allow_writeable_chroot=YES
tcp_wrappers=YES
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30010
vi etc/pam.d/vsftpd,注释掉有pam_shells.so的那一行
#%PAM-1.0
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth required pam_shells.so
auth include password-auth
account include password-auth
session required pam_loginuid.so
session include password-auth
vi /etc/vsftdp/chroot_list,内容:
ftpuser
vi /etc/vsftdp/user_list,内容:
ftpuser
重启ftp服务:
systemctl start vsftpd
systemctl restart vsftpd
systemctl status vsftpd
客户端测试
在windows10上用FileZilla测试连接成功。