基于Spring boot的FTP工具类Demo详见Github
安装(在root用户下)
首先查询本机是否装有FTP服务器;命令如下:
rpm -qa | grep vsftpd
如果没有,则执行:yum -y install vsftpd 进行安装
若存在且想卸载,执行:rpm -e vsftpd-***(vsftpd-*** 查询出来的结果);具体如下所示:
删除后会保留主要的配置文件,并命名为.rpmsave后缀;如不需要,则可自行手动删除
防火墙和SELinux设置
防火墙设置
分别执行如下命令:
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload
SELinux设置
a)临时关闭:setenforce 0
b)永久关闭方法:修改/etc/selinux/config文件中,设置SELINUX=disable,并重启服务器
登录配置
FTP的登录模式有三种;分别是匿名用户登录、本地用户登录和虚拟用户登录。
匿名用户登录
用户登录时不需要用户名和密码,就可直接进入FTP服务器;默认的用户为ftp用户,密码为空;在该模式下,默认的文件路径为:/var/ftp
该目录下有一个pub文件夹,若想上传文件到该目录下,则需要修改pub目录的所属组用户信息和目录的权限信息;若要上传目录到当前根目录(即:/var/ftp)下,则需修改ftp目录的组用户信息和权限信息;这里以pub目录为例:
修改目录的所属组用户信息:chown -R ftp:ftp /var/ftp/pub
修改目录的权限信息:chmod -R 777 /var/ftp/pub
其次,在/etc/vsftpd下,修改ftp的配置文件vsftpd.conf;再修改前,尽量养成备份原始配置文件的习惯:cp vsftpd.conf vsftpd.conf.bak
默认情况下匿名用户登录是开启的,如右图所示:anonymous_enable=YES
到这匿名登录方式已经配置完成,可以通过systemctl start vsftpd.service || systemctl stop vsftpd.service || systemctl restart vsftpd.service 分别开启、关闭和重启ftp服务,进而可以进行你的上传和下载任务。
本地用户登录
本地用户登录时指使用系统当前所注册的用户作为FTP的用户信息,来登录FTP服务器。
在刚开始接触的时候,搭建这个本地用户登录花费了太久的时间。看了网上一大堆的资料,五花八门的;每个人的配置都有差别,又没有对自己的配置做解释;导致在具体实施的时候,不明其里,到最后配来配去还是失败。在这分享一下个人心得,当自己完全搭建好了后,才发现并没有网上有些教程说的那么复杂;很多配置项其实是没有必要添加的。废话不多说,直接上干货。
目前系统中