FTP原理+虚拟机与主机FTP服务搭建
思想是行动的先导,理论是实践的指南。
关键词: TFTP、FTP、NFS、Ubuntu、FileZilla、vsftpd
一、FTP原理
FTP ,File Transfer Protocol,文件传输协议,是互联网上使用的最广泛的文件传送协议。
1.1 基本概念
(1)复制类
FTP服务运行在网络的应用层上,只提供文件传输的一些基本的服务,它使用TCP可靠的传输服务。FTP的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。
除此还有一个TFTP服务,Trivial File Transfer Protocol,简单文件传送协议,其传输层协议为UDP。
两种文件共享协议的特点是:复制整个文件
(1)如果要存取一个文件,必须先获得一个本地的文件副本。
(2)如果要修改文件,之对文件的副本进行修改,然后再将修改后的文件副本传回到原节点。
(2)联机访问类
相关的文件传输协议还有NFS,Network File System,网络文件系统,其特点是联机访问。
该方法的原理是允许应用进程打开一个远地文件,并能在该文件的某个特定的位置上开始读写,而无需对整个文件进行复制。
1.2 FTP工作原理
(1)FTP使用client-server模式,因此,网络通信的两端必须一个为FTP客户端,FTP服务端。(我们在搭建FTP服务时,也需要明确哪一个为服务端,哪一个为客户端)
(2)FTP的客户端和服务端间包含两条并行的TCP连接,“控制连接”和“数据连接”。顾名思义,一路负责控制命令传输(一般是各种请求),一路负责数据传输。如下图所示。
(3)端口:服务端的端口为熟知端口(20和21),客户端的端口(N1和N2)一般由系统随机分配。通过 IP+端口号 的方式,可以定位收发两端的进程。
端口号 | 含义 |
---|---|
21 | 控制连接端口号 ,负责控制命令传输 |
20 | 数据连接端口号,负责数据传输 |
注意:上表指的是服务端的端口号;N1和N2只是一个代号,没有特殊含义。
(4)服务端进程
FTP的服务器进程由两大部分组成:一个主进程,负责接收新的请求;另外若干个从属进程,负责处理单个请求。(两者是并发的)
主进程的处理步骤如下:
<1>打开熟知端口(端口号21),使客户进程能够连接上。
<2>等待客户进程发出连接请求
<3>一旦监听到请求后,启动从属进程处理客服进程发来的请求。
<4>从属进程处理完毕后即终止,而主进程在将任务传递给从属进程后就返回,等待下一个客户请求。
(5)客户端进程
看你要实现什么功能了。
二、虚拟机与主机FTP服务搭建
2.1搭建步骤
根据对FTP工作机制的了解,我们搭建FTP服务的步骤就明确了:
(1)选定客户端和服务端:虚拟机(Ubuntu系统)为服务端,主机(Windows系统)为客户端。
(2)选择搭建工具:Ubuntu下有vsftpd工具,搭建服务端。windows下有FileZilla工具,搭建客户端。(当然,如果有能力,可以自己从头搭建。这里我直接用现有的工具。)
(3)各个端参数配置
2.2 服务端-虚拟机(Ubuntu OS)
工具:vsftpd
(1)安装 sudo apt-get install vsftpd
(2)修改配置 sudo vi /etc/vsftpd.conf
修改为图示,保存退出。
(3)重启服务 sudo /etc/init.d/vsfstpd restart
2.3 客户端-主机(Windows)
工具:FileZilla (注意,选择Client版本)
选择 文件->站点管理 添加新站点
参考文献:
[1]https://www.gov.cn/xinwen/2020-11/20/content_5563065.htm
[2]《计算机网络(第七版)》谢希仁 第6章 6.2文件传送协议