1、安装vsftp
直接使用yum命令安装,注意软件包名是vsftpd,需要root权限。
yum install vsftpd
2、开启vsftp服务
2.1 启动服务
systemctl start vsftpd.service
- 注 不同系统版本有不同的开启服务的命令,只要能够开启服务就可以。
2.2 查看vsftp运行状态
systemctl status vsftpd
出现上图,说明目前vsftp的安装顺利,没有出现什么问题。
3、配置vsftp
我们已经安装了vsftp,但是为了我们更方便的管理vsftp,我们需要进行一些自定义的配置。
在查看vsftp的运行状态中,我们可以很方便的了解到,其配置文件路径为/etc/vsftpd/vsftpd.conf
。
3.1vim/vi命令,查看这个配置文件。
vim /etc/vsftpd/vsftpd.conf
3.2 将匿名用户登录关闭
anonymous_enable=NO
3.2 限制用户只能访问自己的home目录
- 只需要去掉前面的**#**注释
3.3 添加一个用户,并设置密码
useradd ftpuser
passwd ftpuser
3.4 添加用户到user_list末尾
vim /etc/vsftpd/user_list
3.5 创建chroot_list并添加用户
安装vsftp时,默认是没有chroot_list文件的,因此需要创建。
vim /etc/vsftpd/chroot_list
- vim/vi 命令访问一个不存在的文件时,会自动创建。
- 如果要添加多个用户则一个用户占一行
3.6 重启vsftp服务
systemctl restart vsftpd.service
重启成功是没有任何提示的,失败才有。不过可以通过查看重启前后的状态来确定。
systemctl status vsftpd.service
- 重启服务前
- 重启服务后
注意观察,这里的PID和上面图中的PID已经不一样,说明重启服务成功。
4、开放防火墙端口
经过前面的配置,我们的vsftp本身已经没有什么问题,但是此时在外部还是不能够访问到vsftp,原因是防火墙没有开放相关的端口。想要开放端口,那么就需要知道vsftp使用的端口是哪个。
4.1 查看端口使用情况
netstat -tunlp
可以看到vsftp使用的是21端口
如果你想了解netstat命令的参数,可以使用帮助命令
netstat -h
比如上面的tunlp的意思
- t 仅查看tcp
- u 仅查看udp
- l 仅查看处于监听状态的端口
- p 查看相关进程
4.2 lsof命令查看端口对应的进程
lsof -i:21
4.2 开放ftp服务
firewall-cmd --add-service=ftp --permanent
4.2 开放vsftp端口(21)
firewall-cmd --add-port=21/tcp --permanent
5、外部访问vsftp
这里使用的是FileZilla Client,需要的自行下载。
5.1 添加一个站点
协议选择SFTP端口留空默认为21,输入之前配置的用户名和密码。
单击连接,出现下面的提示表示成功连接
5.2 测试文件传输
随便拖一个文件进去测试,run.bat传输成功。
5.3 切换到centos查看
切换到ftpuser用户,并切换到其家目录,查看其家目录下的文件。可以看到与FileZilla Client中所见完全一致。
su ftpuser
cd ~
ls -a