文章目录

  • 前言
  • 一、FTP工作原理及通信方式
  • 1、FTP作用和模式
  • 2、FTP工作原理
  • 3、FTP的两种模式
  • Standard模式
  • Passive模式
  • 二、搭建和配置FTP服务
  • 1、准备工作
  • 2、查看信息
  • 3、开启FTP服务
  • 三、本地用户模式登录
  • 1、本地用户的配置
  • 2、黑白名单的使用
  • 总结



前言

FTP(File Transfer Protocol)是应用层协议,需要由服务端软件、客户端软件两个部分来共同实现文件传输的功能。FTP客户端和服务端之间的连接是可靠的、面向连接的,微数据的传输提供了可靠的保障。


一、FTP工作原理及通信方式

1、FTP作用和模式

作用:通过Internet网络来进行上下行传送文件的协议。
VSFTPD全称:Very Secure FTP
VSFTPD模式:C/S模式
FTP是一种文件传输协议,他是基于TCP协议的应用层协议,使用20和21端口进行传输,其中20 端口用于建立数据连接,并传输数据,21端口用于控制连接,并传输FTP控制指令。

2、FTP工作原理

FTP客户端连接到FTP服务器的21端口,发送用户名和密码,客户端随机开放一个端口(1024以上),发送PORT命令到FTP服务器,告知服务器客户端采用主动模式并开放端口,FTP服务器收到PORT主动模式命令和端口后,通过服务器的20端口额客户端开放的端口连接,发送数据。

3、FTP的两种模式

它支持两种模式,Standard(Active)的主动模式和Passive(PASV)的被动模式。

Standard模式

FTP客户端首先和FTP Server模式,21端口来建立连接,通过这个通道发送指令,客户端需要接收数据的时候再这个通道上发送PORT指令。PORT命令包含了客户端的数据,在传送的时候,服务器通过自己的TCP 20端口发送数据。FTP Server必须和客户端建立一个新的连接用来传输数据。

centos系统与windows系统文件传输 windows往centos传文件_linux

Passive模式

在建立控制通道的时候和Standard模式类似,当客户端通过发送PASV命令的时候 ,TFPServer打开一个位于1024和5000之间的随机端口并且通知客户端在这个端口上传输数据的请求,然后FTP Server将通过这个端口来进行数据的传输。这个时候FTP Server不在需要建立一个新的和客户端之间的连接。

centos系统与windows系统文件传输 windows往centos传文件_Server_02

注意:主动和被动的判断都是相对于FTP Server端来判断的,如果说Server端去连接Client开放的端口,说明他是主动的,相反如果说是Client端去连接Server端开放的端口,则是被动模式。


二、搭建和配置FTP服务

1、准备工作

systemctl stop firewalld		#关闭防火请
systemctl disable firewalld		#关闭防火墙的开启自启

setenforce 0		#临时关闭增强型安全功能
vim /etc/sysconfig/selinux		#进入编辑SELINUX的永久性关闭

centos系统与windows系统文件传输 windows往centos传文件_客户端_03

2、查看信息

yum info vsftpd 
rpm -q | grep vsftpd		#查询是否安装vsftpd
rpm -qc vsftpd		#查看vsftpd的配置问价路径

## 如果没有查询到安装信息的话可以通过yum进行安装
yum install vsftpd -y

centos系统与windows系统文件传输 windows往centos传文件_Server_04

3、开启FTP服务

systemctl start vsftpd
systemctl enable vsftpd		#开启自启

netstat -anlpt | grep vsftpd		#查看vsftpd的端口使用状态

cp vsftpd.conf vsftpd.conf.bak		#做好FTP配置文件的备份,以便出现问题

centos系统与windows系统文件传输 windows往centos传文件_linux_05


centos系统与windows系统文件传输 windows往centos传文件_Server_06


centos系统与windows系统文件传输 windows往centos传文件_服务器_07


centos系统与windows系统文件传输 windows往centos传文件_服务器_08


centos系统与windows系统文件传输 windows往centos传文件_Server_09

在这里插入代码片匿名访问,用户名为ftp,密码为空,直接回车即可完成登录
ftp>pwd			#匿名访问ftp的根目录为Linux系统的/var/ftp目录
ftp>ls			#查看当前目录
ftp>cd pub		#切换进入到pubmulu 
ftp>get 文件名	#下载文件到当前Windows本地目录
ftp>put 文件名	#上传文件到ftp目录
ftp>quit		#退出

测试结果如下

centos系统与windows系统文件传输 windows往centos传文件_Server_10

centos系统与windows系统文件传输 windows往centos传文件_Server_11


三、本地用户模式登录

1、本地用户的配置

anonymous_enable=NO	#启用本地用户
local_enable=YES	#关闭匿名用户访问
write_enable=YES	#开放服务器的写权限
local_umask=077	#可设置仅宿主用户拥有被上传的文件的权限
chroot_local_users=YES	#将访问禁锢在用户的宿主目录中
allow_writeable_chroot=YES	#允许被限制的用户主目录具有写权限

##不需要的东西注释掉
#anon_mkdir_write_enable=YES	#允许匿名用户创建(上传目录)
#anon_other_write_enable=YES	#允许删除、重命名、覆盖等操作

centos系统与windows系统文件传输 windows往centos传文件_服务器_12

本地用户登录后测试连接指定系统并发送文件

centos系统与windows系统文件传输 windows往centos传文件_Server_13

2、黑白名单的使用

centos系统与windows系统文件传输 windows往centos传文件_Server_14

userlist_deny=NO		#白名单
userlist_deny=YES 		#黑名单
	##如果有需要添加黑名单则在userlist_deny=YES 后面添加上用户的名字

centos系统与windows系统文件传输 windows往centos传文件_服务器_15

测试结果

centos系统与windows系统文件传输 windows往centos传文件_服务器_16


总结

  • FTP的工作原理
  • VSFTPD的两种工作模式(主动与被动的区别)
  • FTP的端口使用情况
  • FTP服务的配置与使用
  • 如何实现匿名用户登录与本地用户登录