安装 vsftpd

yum install -y vsftpd

cd /etc/vsftpd
ls

目录说明:
/etc/vsftpd/vsftpd.conf 是核心配置文件
/etc/vsftpd/ftpusers 是黑名单文件,此文件里的用户不允许访问 FTP 服务器
/etc/vsftpd/user_list  是白名单文件,是允许访问 FTP 服务器的用户列表
/etc/vsftpd/vsftpd_conf_migrate.sh  是vsftpd操作的一些变量和设置

+开机自启动。
systemctl enable vsftpd

+启动 FTP 服务。
systemctl start vsftpd

+查看 FTP 服务端口。
netstat -antup | grep ftp
netstat -tnulp | grep vsftpd

常见问题:netstat 未找到命令
yum install -y net-tools

netstat 命令:
netstat -tln 用来查看linux的端口使用情况

配置用户

+创建、删除 ftptest 用户
useradd ftptest
sudo userdel -r newuser

+修改用户密码
passwd ftptest

其它配置

+修改/etc/vsftpd/vsftpd.conf

vim /etc/vsftpd/vsftpd.conf
“i” 进入编辑模式
是否允许匿名登录 FTP 的参数修改为anonymous enable=NO
是否允许本地用户登录 FTP 的参数修改为local_enable=YES
pasv_enable=YES       
pasv_min_port=8800
pasv_max_port=8899

+关闭防火墙
centoos 7操作为 systemctl stop firewalld.service
centoos 6操作位 service stop iptables;

+启动ftp服务器
cetoos 7操作为 systemctl restart vsftpd.service
centoos 6操作为 service vsftpd restart

+赋权,将ftp指定的根目录赋权为777权限
chmod 777 /var/ftp/pub

+检查SElinux状态并关闭
getsebool -a|grep ftp

若centoos 6 则在设置几个权限:
setsebool httpd_enable_ftp_server 1 
+[参考资料](https://www.cnblogs.com/LHWorldBlog/p/8516837.html)

扩展知识

FTP的连接一般是有两个连接:
1.客户程和服务器传输命令的连接。
2.数据传送的连接。

FTP服务程序一般会支持两种不同的模式:
1.Port模式
2.Passive模式(Pasv Mode)

+区别

Port模式:
当客户端C向服务端S连接后,使用的是Port模式,那么客户端C会发送一条命令告诉服务端S(客户端C在本地打开了一个端口N在等着你进行数据连接),当服务端S收到这个Port命令后 就会向客户端打开的那个端口N进行连接,这种数据连接就生成了。
Pasv模式:
当客户端C向服务端S连接后,服务端S会发信息给客户端C,这个信息是(服务端S在本地打开了一个端口M,你现在去连接我吧),当客户端C收到这个信息后,就可以向服务端S的M端口进行连接,连接成功后,数据连接也建立了。

FTP 账户访问限制

vim /etc/vsftpd/vsftpd.conf  
chroot chroot_local_user=YES
chroot_list_enable=YES
allow_writeable_chroot=YES