1.安装vsftpd
yum install -y vsftpd
2.执行以下命令设置FTP服务开机自启动
systemctl enable vsftpd.service
3.执行以下命令启动FTP服务
systemctl start vsftpd.service
4.执行以下命令创建ftp用户
useradd ftpuser
5.执行以下命令并按照提示设置“ftpuser"用户密码
passwd ftpuser
6.执行以下命令创建供FTP使用的文件目录,此处以“/data/ftp/”为例
mkdir /data/ftp
7.执行以下命令将创建的文件目录所有者改为用于登录FTP的本地用户
chown -R ftpuser:ftpuser /data/ftp
8.配置vsftpd,修改“vsftpd.conf”配置文件
vi /etc/vsftpd/vsftpd.conf
9.需要配置的参数如下:
anonymous_enable=NO #不允许匿名登录FTP服务器
local_enable=YES #允许本地用户登录FTP服务器
chroot_local_user=YES #所有用户都被限制在其主目录
chroot_list_enable=YES #启用例外用户名单
chroot_list_file=/etc/vsftpd/chroot_list #例外用户名单
#listen=NO 改为YES
listen=YES
#listen_ipv6=YES 改为NO
listen_ipv6=NO
#以下为新增配置
allow_writeable_chroot=YES
local_root=/data/files
pasv_enable=YES
pasv_addr_resolve=yes
pasv_address=192.168.0.xxx
pasv_min_port=12000
pasv_max_port=12100
reverse_lookup_enable=NO #加上这个配置 ftpClient.login()优化速度
10.在“/etc/vsftpd/”目录下创建“chroot_list”文件
touch /etc/vsftpd/chroot_list
编辑chroot_list,在文件中新增 "ftpuser",如图:
注意:如果在chroot_list文件中添加ftpuser,那么ftpuser只能限制在/data/files下
ftpClient.makeDirectory()会返回false,看实际场景是否需要限制,如果不限制chroot_list文件置空即可
11.执行以下命令重启vsftpd服务使配置生效
systemctl restart vsftpd.service
12.开放端口
根据FTP的不同模式需要放通的端口如下:
FTP为主动模式时:端口21。
FTP为被动模式时:端口21,以及配置文件“/etc/vsftpd/vsftpd.conf”中参数“pasv_min_port”和“pasv_max_port”之间的所有端口。
13.关闭SELinux
临时关闭
setenforce 0
永久关闭
vi /etc/sysconfig/selinux
然后将配置SELinux=enforcing改为SELinux=disabled
保存,重启系统
完成!