1.安装vsftpd

rpm -qa vsftpd || yum -y install vsftpd     #检查是否有安装vsftpd,如果没有使用yum安装

2.配置用户

mkdir /ftp                #创建一个用于存储ftp数据的目录

useradd   -d /ftp  -u ftpuser ftpuser    -s /bin/bash      #创建一个ftp用户

echo  "password"  |  passwd --stdin ftpuser   #为ftp用户设置一个系统密码为password

3.编辑配置文件

vim    /etc/vsftpd/vsftpd.conf      #vsftpd的主配置文件

local_umask=000   #本地用户文件上传后的权限是777 这里为了方便其他人也能对文件进行修改所以给的是777权限

local_enable=YES`     #允许系统用户名登录

chroot_local_user=YES`    #是否将所有用户限制在主目录,YES为启用 NO禁用.(该项默认值是NO,即在安装vsftpd后不做配置的话,ftp用户是可以向上切换到要目录之外的) 

ascii_upload_enable=YES 

ascii_download_enable=YES

allow_writeable_chroot=YES

默认情况下服务器会假装接受ASCⅡ模式请求但实际上是忽略这样的请求,启用上述的两个选项可以让服务器真正实现ASCⅡ模式的传输。
注意:启用ascii_download_enable选项会让恶意远程用户们在ASCⅡ模式下“SIZE/big/file”这样的指令大量消耗FTP服务器的I/O资源。
这些ASCⅡ模式的设置选项分成上传和下载两个,这样我们就可以允许ASCⅡ模式的上传(可以防止上传脚本等恶意文件而导致崩溃),而不会遭受拒绝服务攻击的危险。

从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误,所以就需要在配置文件中加入这个选项

修改完之后保存配置
centos6
service vsftpd start|stop|restart #进行管理
centos7

systemctl start|stop|restart  vsftpd

设置开机自启

system enable vsftpd

常用配置选项

pasv_enable=no            #关闭被动模式
connect_from_port_20=YES      #默认情况下ftp  port主动模式使用20进行数据传输  (NO不使用)
anonymous_enable=NO    #禁止匿名用户登陆,默认是允许的
anon_mkdir_write_enable=YES  #允许匿名用户 创建新的目录
anon_other_write_enable=YES   #允许匿名用户改名和删除文件
pasv_min_port=30000      #被动模式进行数据传输的起始端口   
pasv_min_port=40000       #被动模式进行数据传输的终止端口

FTP使用常见问题
当上传的文件是一个包含中文的文件时,会出现下面这种报错,我们可以创建一个文件夹包含这个文件就可以了

原因:

ftp协议中有些扩展字符是保留字,而有些中文字符就可能是保留字(有些中文没事),于是出现问题。尽量不要以中文的方式进行命名。

centos7 VSFTP无法启动 centos配置vsftp_运维