新闻资讯

FTP客户端和服务器端如何“沟通”起来?如何架设ftp服务器?

2020-07-22

FTP使用两个端口,分别为控制端口(命令端口)和数据端口。控制端口号一般为21,数据端口一般为20。控制socket用来传输命令,数据socket用来传输数据。每一个FTP命令发送后,FTP服务器就会返回一个字符串,其中包含一个响应码和一些说明信息,其中响应码主要用于判断命令是否被成功执行了。那么,基于FTP协议的客户端和服务器端是如何进行“沟通”的?我们来一探究竟吧。

FTP客户端和服务器端如何“沟通”起来?

1.启动FTP
客户通过FTP客户端软件,发起FTP交互式命令,告诉服务器,服务器上的FTP服务会接收到这个命令,并解析发来命令,然后发出回复信息,客户端对服务器说:“我想和你聊会天,可以吗?”

2.建立控制连接
客户端TCP层会根据服务器的IP地址,向服务器提供FTP服务的21端口发出主动建立连接的请求,服务器接收到请求后,经过三次握手,客户端与服务器端就建立了一个TCP连接,就好比是我们在A地和B地之间传输货物,首先应该建立一条运送货物的通道。这个TCP连接称为控制连接,用户发出的FTP命令和服务器的回应都是依靠该连接来传送的,在用户退出前一直存在。

3.建立数据连接,并进行文件传输
到目前为止,客户端和服务器端已经建立了聊天的通道,聊天过程中,对方觉得很投机,想互赠礼物(将客户端和服务器端进行文件的传输比喻为互赠礼物)怎么办,这个时候我们就需要一条通道来进行礼物的传输(将数据连接比喻为数据连接),那么是如何赠送礼物的?

(1)客户端通过控制连接发送一个上传文件的命令,会自己分配一个临时的TCP端口号。

(2)客户端通过控制连接向服务器发送一个命令告诉服务器自己的IP地址和临时端口号,然后发送一条上传文件的命令。(就好客户端要赠送礼物给服务器时,不只发送一个送礼物的命令,在这之前还要发送一条自我介绍的命令,即IP地址和端口号,来告诉服务器和他聊天的是哪一个客户)

(3)服务器接收到客户端的IP地址和临时端口号后,以这个IP地址和端口号为目标,使用服务器上的20端口(数据端口),向客户端发出主动建立连接的请求。

(4)客户端收到请求后,通过三次握手后就与服务器之间建立了另外一条TCP连接数据连接(好比礼物传输的通道)。

(5)客户端在自己的文件系统中选择要上传(赠送礼物)的文件。

(6)客户端将文件写入到文件传输的进程中(即网络流中)。

(7)文件传输完成后,由服务器主动关闭该数据的连接。

4.关闭FTP
当用户退出FTP时,客户端发送退出命令,之后控制连接被关闭,FTP服务结束。

如何架设ftp服务器?

准备工具:

1.花生壳盒子(花生棒Pro);

2.Serv-U,大家可自行上网搜索下载;

一、Serv-U的安装及设置

1.相信大家对于安装软件不会有啥问题。

2.安装完毕后,直接启动Serv-U,并设置域,记得勾选启用域。

3.接着就是很简单的下一步,端口信息自己可以留意下,FTP网页形式的默认都是用的80端口。

4.到这里,域已经创建成功,我们还需要创建FTP的用户账号密码。

5.设置你的FTP服务器根目录。就是你希望从外网连接到你服务器的哪个目录,每个人需求不一样,下图仅作参考,请根据实际需求设置。

6.点击完成,就已经搭建好FTP服务器了,可以用简单的命令测试下。

7.如果你还要给其他人访问你的FTP,但又不想给那么多权限他们,就可以另外再创建一个用户,单独设置这个新账号的权限,这样就不怕别人连接你的FTP后,删除你的重要文件,或者捣乱。

二、花生壳盒子(花生棒Pro)设置

下面的花生壳盒子(花生棒Pro)设置方法,你肯定会觉得非常简单。

So easy,一步到位。填写你的服务器内网IP,FTP端口80,应用名称随便填,点确定就OK。

三、连接FTP

打开浏览器,在地址栏输入花生壳盒子(花生棒Pro)里面设置的映射外网访问地址即可访问。

花生壳是国内较早一批拥有千万级用户量的内网穿透服务商。目前已自主研发花生壳软件以及花生棒、花生壳盒子等硬件。无需公网IP也能实现内网穿透服务。支持Windows、Linux、树莓派、iOS等操作系统,并可通过iPhone、安卓手机APP或微信进行远程管理。花生壳被广泛应用于微信公众号、小程序、HTTPS映射、淘宝客采集系统、视频监控 、遥感测绘、FTP 、企业OA等应用领域。

作者:ZWE7616175
文章来源:csdn