一、在安装前需提前确认是否已经安装了vsftpd 命令如下:
rpm -qa|grep vsftpd
若已经安装
若没有安装则无任何提示
安装vsftpd命令:
yum -y install vsftpd
默认的配置文件路径为:
/etc/vsftpd/vsftpd.conf
(若要修改请提前备份)
二、创建虚拟用户
选择一个目录(可以为根目录),创建ftp文件夹(博主就创建在了根目录下了):mkdir /ftpfile
然后在添加一个用户,命令如下:
useradd ftpuser -d /ftpfile -s /sbin/nologin
参数说明 : -d 意为该用户应该使用的文件路径
-s 意为该创建的用户没有登录linux系统的权限
修改ftpfile文件路径的权限,命令如下:
chown -R ftpuser:ftpuser /ftpfile
参数说明 -R 注意,是大写的R,意为遍历参数中所有的路径,统统都赋权限给ftpuser
重设ftpftpuser密码,命令如下(博主设置的密码是123456所以提示密码太简单了,这个不影响,只是警告):
passwd ftpuser
三、配置
输入以下命令
cd /etc/vsftpd
vim chroot_list
将刚刚新增的虚拟用户添加到此配置文件中
保存并退出,然后使用cat命令查看该文件的信息(只要保证该文件中有刚刚创建好的虚拟用户即可)
另外,为了防止后面验证的时候出现500提示,得修改以下文件
vim /etc/selinux/config
将其中的SELINUX属性设置为disabled(记得wq保存)(原为:
)
如果执行后还会出现500提示,那么请执行以下命令,然后重启linux服务器,重启后执行reboot即可
setsebool -P ftp_home_dir 1
配置vsftpd的配置文件(划重点!)
执行以下命令
vim /etc/vsftpd/vsftpd.conf
具体配置项参考:102、vsftpd.conf 配置详解
另外记一个配置项,这个配置比较重要如下
chroot_local_user:NO
这个配置如果配置成yes,那么也就意味着在访问ftp的时候还可以访问上级目录,那就很危险了,所以必须得配置成NO
四、开启端口:
使用防火墙开启端口:
firewall-cmd --zone=public --add-port=20/tcp --permanent
参数详解:
--zone #作用域
--add-port=20/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
查看已开放端口:
firewall-cmd --list-ports
使用命令开启20、21端口,并查看确认
五、向防火墙中添加ftp服务:
查看当前防火墙已打开服务:
firewall-cmd --list-services
查看可以打开的服务有哪些
firewall-cmd --get-services
添加一个服务到firewalld
firewall-cmd --add-service=http //http换成想要开放的service
这样添加的service当前立刻生效,但系统下次启动就失效,可以测试使用。要永久开发一个service,加上 --permanent,即:
firewall-cmd --permanent --add-service=ftp --permanent
然后通过systemctl restart firewalld.service重启防火墙就生效了
六、测试登录
配置完后呢,执行以下命令,重启vsftpd(Shutting down 是否成功都无所谓,关键是Starting成功就可以了)
systemctl restart vsftpd
好,启动成功,输入ftp://ip 即可访问,格式如下(如果是云服务器,就访问外网ip,虚拟机,访问内网即可)
ftp://119.29.101.***/
接着会要求输入用户密码,此处需要填写的就是刚刚创建的虚拟用户
登录成功后就是如下图所示的样子啦。
七、另外可能用到的命令:
1、关于防火墙和端口:
开启防火墙:
systemctl start firewalld
查看已开放端口:
firewall-cmd --list-ports
在这里插入代码片
开放端口:
firewall-cmd --zone= public --add-port=80/tcp --permanent
关闭端口
firewall-cmd --zone= public --remove-port=80/tcp --permanent
关闭防火墙:
systemctl stop firewalld
重启防火墙:
systemctl restart firewalld
查看防火墙状态:
systemctl status firewalld
2、关于ftp服务
查看ftp服务状态:
systemctl status vsftpd
开启ftp服务:
systemctl start vsftpd
关闭ftp服务:
systemctl stop vsftpd
重启ftp服务:
systemctl restart vsftpd
3、关于网卡
重启网卡
systemctl restart network