一、简介及工作原理
FTP,File Transfer Protocol,文件传输协议。
FTP是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。
其工作原理是基于C/S架构(client/server,客户端/服务器端),服务器端开启21端口进行监听,一旦有客户端发起FTP请求,就验证用户信息并进行连接。
数据传输格式:二进制传输)(默认)、文本传输
双通道协议:命令和数据连接
两种模式:
-
Standard (PORT方式,主动方式)
FTP 客户端首先和服务器的TCP 21端口建立连接,用来发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。
-
Passive (PASV,被动方式)
建立控制通道和Standard模式类似,但建立连接后发送Pasv命令。服务器收到Pasv命令后,打开一个临时端口(端口号大于1023小于65535)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口传送数据。
二、Linux部署FTP服务器
1.yum install -y vsftpd 和 yum install -y ftp(安装ftp服务及ftp命令)
当我们安装好vsftpd服务时,该服务会自动为我们创建一个名为ftp的程序用户,方便我们后边进行ftp连接。
2.修改配置文件(修改配置文件只是加固系统,可以不用修改)
3.建立连接(在客户端要安装ftp工具)
服务器端的vsftpd服务需要手动开启(切记,防火墙和selinux要关闭(systemctl stop firewalld && setenforce 0))
客户端安装ftp工具
客户端建立连接
三、各种软件
1.Xlight FTP Server
该工具是在windows的系统下使用,搭建一台简易的ftp服务器
右击选择localization,再选择language files,再选择language_cn.ini,切换成中文
建立连接
2.FileZilla(简单粗暴)
只需要把文件从右边往左边一拖,OK;至于上传,需要更改ftp服务器的权限,这里不多讲,后续会有相关解释,望大家谅解。
3.lrzsz命令
这是两条命令的集合
rz:将windows系统的物理机文件上传至linux
sz:将Linux上的文件传输到windows物理机
其实还有好多的ftp工具,这里我只简单的介绍了这几种,大家有兴趣可以百度查询、下载更多的工具。如果发现有更好的,还望不吝赐教。至于工具的使用,我也只是简单的做了一些介绍,还有更多的功能需要我们自己去亲身探索,毕竟学无止境嘛。