# 安装vsftp
root@Server1d19 ~ # yum install -y vsftpd
# 直接启动一次,用于检查安装结果
root@Server1d19 ~ # systemctl enable vsftpd.service
root@Server1d19 ~ # systemctl start vsftpd.service
root@Server1d19 ~ # netstat -antup | grep ftp
# 创建ftp用户
root@Server1d19 ~ # useradd ftpadmin
# 根据提示创建密码
root@Server1d19 ~ # passwd ftpadmin
# 创建ftp目录
root@Server1d19 ~ # mkdir /var/ftp/work01
# 执行以下命令将创建的文件目录所有者改为用于登录FTP的本地用户
root@Server1d19 ~ # chown -R ftpadmin:ftpadmin /var/ftp/work01
# 配置vsftpd 的主动模式和被动模式
root@Server1d19 ~ # vi /etc/vsftpd/vsftpd.conf
# 设置以下参数,不允许匿名登录FTP服务器,允许本地用户登录FTP服务器,并指定FTP本地用户使用的文件目录。
anonymous_enable=NO #不允许匿名登录FTP服务器
local_enable=YES #允许本地用户登录FTP服务器
local_root=/var/ftp/work01 #FTP本地用户使用的文件目录
# 设置以下参数,限制用户只能访问自身的主目录。
chroot_local_user=YES #所有用户都被限制在其主目录
chroot_list_enable=YES #启用例外用户名单
chroot_list_file=/etc/vsftpd/chroot_list #例外用户名单
allow_writeable_chroot=YES
# 设置以下参数,配置FTP支持被动模式。并指定FTP服务器的公网IP地址,以及可供访问的端口范围,端口范围请根据实际环境进行设置。
listen=YES
listen_ipv6=NO
port_enable=NO
pasv_min_port=3000 #被动模式下的最小端口
pasv_max_port=3100 #被动模式下的最大端口
# 修改/etc/selinux/config文件,把SELINUX参数的值改为disabled。
root@Server1d19 ~ # vim /etc/selinux/config
SELINUX=disabled
# 使修改生效
root@Server1d19 ~ # setenforce 0
# 开通防火墙端口
root@Server1d19 ~ # firewall-cmd --zone=public --add-service=ftp --permanent
root@Server1d19 ~ # firewall-cmd --zone=public --add-port=21/tcp --permanent
root@Server1d19 ~ # firewall-cmd --zone=public --add-port=3000-3100/tcp --permanent
# 重启防火墙:
root@Server1d19 ~ # systemctl restart firewalld.service
# 重启vsftpd
root@Server1d19 ~ # systemctl restart vsftpd
# 使用ftp://192.168.1.19 访问ftp服务
参考资料: