CentOS7 安装并配置使用vsftpd

1. 安装vsftpd服务:

 yum install vsftpd

2.修改vsftpd的一些配置项:

vi /etc/vsftpd/vsftpd.conf
 
#改为NO 就是禁止匿名用户登录
anonymous_enable=NO
#允许本地用户访问(/etc/passwd中的用户) 
local_enable=YES
#允许写入权限,包括修改,删除
write_enable=YES
#禁止跳出当前用户权限目录
chroot_local_user=YES

3. 重启vsftpd并添加开机自启动:

systemctl restart vsftpd
systemctl enable vsftpd

4. 添加ftp用户并限制其不能进行ssh登录;修改ftp用户密码;修改目录权限,否则无法上传文件:

useradd -s /sbin/nologin -d /var/www/html ftpuser
passwd ftpuser
chmod o+w /var/www/html/

这里创建的用户为: ftpuser 尝试使用创建的ftpuser进行ftp登录,ftp工具为 FileZilla 却显示"错误: 无法建立数据连接: ECONNREFUSED - 连接被服务器拒绝" 或者

经查找,发现是vsftp主动模式和被动模式的锅,解决方法有两个:

1.设置FileZilla传输模式为主动:

2.配置vsftp被动模式项,vsftpd.conf最后面追加:
#设置是否允许被动模式
pasv_enable=YES
pasv_min_port=65000
pasv_max_port=65535

防火墙开端口 65000-65535 保存并重启vsftpd服务 尝试连接ftp,连接成功

上传文件的时候,却发现上传失败,显示"响应: 553 Could not create file.":

解决的方法为:

#vi /etc/vsftpd/vsftpd.conf
 
#末尾添加
allow_writeable_chroot=YES

再次重启vsftpd

终于能正常连接ftp并且上传文件了

Comments