一、FTP服务简介

1、FTP(File Transfer Protocol,文件传输协议)是典型C/S结构的应用层协议,需要由服务端软件,客户端软件两个部分共同实现文件传输功能。
2、FTP服务器默认使用TCP协议的20、21端口与客户端进行通信。20端口用于建立数据连接,并传输文件数据;21端口用于建立控制连接,并传输FTP控制命令。
3、Windows中常见的FTP服务器软件包括FileZilla Sener、Server-U等,而Linux系统中,vsftp是目前应用十分广泛的一款FTP服务软件。

二、Linux中配置FTP服务器

1、匿名访问FTP服务

1)安装ftp服务器
rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
Linux下搭建FTP服务器_第1张图片
2)备份vsftp主配置文件

cd /etc/vsftpd/
cp vsftpd.conf vsftpd.conf.back

Linux下搭建FTP服务器
注:该操作是为了防止主配置文件被改乱了能及时恢复
3)重启服务器并在cmd或者文件浏览器中访问(/var/ftp/为默认工作目录)
systemctl start vsftp
Linux下搭建FTP服务器_第2张图片
注:此时FTP服务器可读、可下载,无法上传
4)修改主配置文件实现匿名用户上传文件
vi /etc/vsftp/vsftpd.conf
Linux下搭建FTP服务器_第3张图片
Linux下搭建FTP服务器_第4张图片
注:chmod 777 /var/vsftpd/pub 更改pub目录权限
5)重启FTP服务并测试效果(可读,可下载,可删,可改)
systemctl restart vsftpd
Linux下搭建FTP服务器_第5张图片

2、本地(系统用户)访问FTP服务

1)修改主配置文件
Linux下搭建FTP服务器_第6张图片
2)新建系统用户jsh
Linux下搭建FTP服务器_第7张图片
3)重启FTP服务并测试效果
systemc restart vsftpd
Linux下搭建FTP服务器_第8张图片
4)常用的配置项
listen=YES:是否以独立运行的方式监听服务
listen_address=192.168.4.1:设置监听的 IP 地址
listen_port=21:设置监听 FTP 服务的端口号
write_enable=YES:是否启用写入权限(影响整个服务器)
download_enable=YES:是否允许下载文件
userlist_enable=YES:是否启用 user_list 列表文件
userlist_deny=YES:是否禁用 user_list 中的用户
max_clients=0:限制并发客户端连接数,就是最多允许多少用户同时登录
max_per_ip=0:限制同一IP地址的并发连接数,就是一个IP最多同时下载几个文件

3、虚拟用户访问FTP服务

1)建立虚拟用户的账户名、密码列表

cd /etc/vsftpd
vi vusers.txt(奇数行为用户名,偶数行为密码)

Linux下搭建FTP服务器
db_load -T -t hash -f vusers.txt vusers.db 列表转换(将用户加入到db库中)
Linux下搭建FTP服务器
chmod 600 vusers.* 更改权限
2)创建FTP根目录及虚拟用户映射的系统用户
useradd -d /opt/vuser -s /sbin/nologin vuser 建立系统账号,指定家目录,指定shell环境
3)建立支持虚拟用户的PAM认证文件
vi /etc/pam.d/vsftpd.vu*
Linux下搭建FTP服务器

4)配置FTP主配置文件vsftpd.conf
Linux下搭建FTP服务器_第9张图片
5)重启FTP服务器并测试访问(zhangsan和lisi都能访问)
systemctl restart vsftpd
Linux下搭建FTP服务器_第10张图片
6)为虚拟账号配置单独的配置文件目录
vi /etc/vsftpd/vsftpd.conf
在配置文件末尾添加
Linux下搭建FTP服务器_第11张图片
新建配置文件目录
mkdir /etc/vsftpd/vdir
vi zhangsan
Linux下搭建FTP服务器_第12张图片
在/opt/vuser下面新建zhangsan目录
mkdir /opt/vuser/zhangsan
在zhangsan目录下面新建pub目录并更改权限

mkdir /opt/vuser/zhangsan/pub
chmod 777 /opt/vuser/zhangsan/pub

重启FTP服务并且测试访问
systemctl restart vsftpd
Linux下搭建FTP服务器_第13张图片