cefsharp 发送请求服务器_Linux服务器配置-VSFTP服务配置(一)

4fbcd3b5e3174c55b52466fe48942399.png

vsftpd 是“very secure FTP daemon”的缩写,是一个完全免费的、开源的 FTP 服务软件,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面。它支持很多其他的 FTP 服务软件所不支持的特征,比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。既然它是一个 FTP 服务软件,那么这里先对FTP服务做一些简介。

一、FTP 简介

FTP 是File Transfer Protocol(文件传输协议)的英文简称,它是一种在网络中进行文件传输的协议,基于客户端 /服务器运行模式,采用TCP传输协议进行数据传输。

FTP服务运行时使用两个端口:一个是控制端口;一个是数据端口。

控制端口:用于接受客户端发出的相关 FTP 命令与参数,默认为21端口。

数据端口:用于进行数据传输,默认为20端口。

二、FTP 工作模式

根据 FTP 的数据连接方式不同,FTP的工作模式可分为:主动模式和被动模式。

1、主动模式的工作原理(PORT模式)

53b1da8c5b0cfb97238856072fa74f16.png

主动模式数据包抓取如下图所示:

8c21da77757b56d4fc1887f89e7e2f7d.png

主动(PORT)模式的FTP详细说明如下:

①客户端随机开启一个大于1024的端口作为控制端口, 并通过该端口发送一个TCP SYN(TCP同步)包给FTP服务器控制端口(默认为21端口),发起连接请求。

② 服务器端收到客户端TCP SYN包后,发送SYN ACK包给客户端进行同步确认。

③客户端收到服务器端SYN ACK包后,发送一个ACK确认包,至此客户端与服务器端建立控制连接完成。

④当客户端请求一个列表或者发起一个上传或下载文件的请求时,客户端使用PORT命令告知服务器采用主动模式连接并宣告数据端口号,POST命令包含一个IP地址(通常是客户自己的IP地址)和一个随机的数据端口。在本例中如:POST 192,168,1,200,147,49,前四组数字代表IP地址,后二组数字代表端口号。端口号具体计算:147*256+49=37681。

⑤服务器端开启数据端口(默认为20)发送一个TCP SYN(TCP同步)包给客户端的数据端口(PORT命令中发送给服务器端的端口),发起连接请求。

⑥客户端收到服务端TCP SYN包后,发送SYN ACK包给服务端进行同步确认。

⑦服务器端发送一个ACK确认包,至此服务端与客户端建立数据连接完成。

⑧服务端与客户端以这个数据连接来进行数据传递,STOR(上传)表示客户端要发送数据,RETR(下载)表示服务器段发送数据,都需要对方进行ACK确认。

⑨当数据传输完成以后,以FIN包来结束数据连接,FIN包需要双方进行ACK确认。

⑩当FTP服务需要断开时,以FIN包来结束控制连接,FIN包需要双方进行ACK确认。

2、被动模式的工作原理(PASV模式)

cb99cbb9dcec6a4a26bd9c4929cd22a1.png

被动模式数据包抓取如下图所示:

ffbfdcfce699804a20e3ba112ea2fbef.png

被动(PASV)模式的FTP详细说明如下:

①客户端随机开启一个大于1024的端口作为控制端口, 并通过该端口发送一个TCP SYN(TCP同步)包给FTP服务器控制端口(默认为21端口),发起连接请求。

②服务器端收到客户端TCP SYN包后,发送SYN ACK包给客户端进行同步确认。

③ 客户端收到服务器端SYN ACK包后,发送一个ACK确认包,至此客户端与服务器端建立控制连接完成。

④当客户端请求一个列表或者发起一个上传或下载文件的请求时,客户端使用PASV命令告知服务器采用被动模式连接。

⑤服务器端随机开启一个大于1024的端口作为数据端口,并告知客户端。在本例中如:192,168,1,91,145,120,前四组数字代表IP地址,后二组数字代表端口号。端口号具体计算:145*256+120=37240。

⑥客户端随机开启一个大于1024的端口发送一个TCP SYN(TCP同步)包给服务端的数据端口(服务器端宣告的数据端口),发起连接请求。

⑦ 服务端收到客户端TCP SYN包后,发送SYN ACK包给客户端进行同步确认。

⑧客户端发送一个ACK确认包,至此客户端与服务端建立数据连接完成。

⑨服务端与客户端以这个数据连接来进行数据传递,STOR(上传)表示客户端要发送数据,RETR(下载)表示服务器段发送数据,都需要对方进行ACK确认。

⑩当数据传输完成以后,以FIN包来结束数据连接,FIN包需要双方进行ACK确认。

⑪当FTP服务需要断开时,以FIN包来结束控制连接,FIN包需要双方进行ACK确认。

以上是我在学习Linux系统中整理的一些学习要点,肯定会有不对的地方,希望各位大侠给与指正,我们共同学习!谢谢!

下篇:Linux服务器配置-VSFTP服务配置(二)

vsftpd服务软件安装及配置文件说明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值