新闻资讯

ftp主动和被动模式是什么?靠谱的搭建ftp工具推荐

2019-10-14

最近做一个项目用到FTP和其它系统进行文件传输,结果在FTP网络连接的问题上花了很多时间,由于太久没搞多FTP,忘记了FTP不单单开放21端口,客户端采用不同连接模式对网络有不同。在此重温一下FTP的主动模式和被动模式的相关知识。

在使用FTP时,如果客户端机器和FTP服务器双方之间的所有端口都是开放的,那连接不存在问题。如果客户端与服务器之间有防火墙,如果没配置好防火策略 和采用合适的连接模式,会导致登录成功,但无法List列表的问题。要避免出现这样的问题,首先要了解FTP的工作模式。

1.FTP的PORT(主动模式)和PASV(被动模式)

(1) PORT(主动模式)

PORT中文称为主动模式,工作的原理: FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,客户端随机开放一个端口(1024以上), 发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口;FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端 开放的端口连接,发送数据,原理如下图:

(2) PASV(被动模式)

PASV是Passive的缩写,中文成为被动模式,工作原理:FTP 客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,发送PASV命令到FTP服务器, 服务器在本地随机开放一个端口(1024以上),然后把开放的端口告诉客户端, 客户端再连接到服务器开放的端口进行数据传输,原理如下图:

2.两种模式的比较

从上面的运行原来看到,主动模式和被动模式的不同简单概述为: 主动模式传送数据时是"服务器"连接到"客户端"的端口;被动模式传送数据是"客户端"连接到"服务器"的端口。

主动模式需要客户端必须开放端口给服务器,很多客户端都是在防火墙内,开放端口给FTP服务器访问比较困难。

被动模式只需要服务器端开放端口给客户端连接就行了。

3.不同工作模式的网络设置

我在实际项目中碰到的问题是,FTP的客户端和服务器分别在不同网络,两个网络之间有至少4层的防火墙,服务器端只开放了21端口, 客户端机器没开放任何端口。FTP客户端连接采用的被动模式,结果客户端能登录成功,但是无法LIST列表和读取数据。很明显,是因为服务器端没开放被动 模式下的随机端口导致。

由于被动模式下,服务器端开放的端口随机,但是防火墙要不能全部开放,解决的方案是,在ftp服务器配置被动模式下开放随机端口在 50000-60000之间(范围在ftp服务器软件设置,可以设置任意1024上的端口段),然后在防火墙设置规则,开放服务器端 50000-60000之间的端口端。

主动模式下,客户端的FTP软件设置主动模式开放的端口段,在客户端的防火墙开放对应的端口段。

靠谱的搭建ftp工具推荐——花生壳

1、下载serv-uv6.4.0.6进行安装,安装后运行serv-u主程序,在本地服务器当中勾选自动开始(系统服务),新建FTP域,为FTP服务器命名,可以输入自己的域名,也可以做另外的描述。

2、设置权限进行以上操作后,FTP域已经创建好了,接下来需要为这个域创建FTP账户。一般都会将用户锁定在主目录。

3、如此用户锁定主目录后,使用此账户访问FTP站点后,只能进行访问到“电影”文件夹下的文件以及子文件夹,无法切换到其他目录下。选择用户,可以查看这个FTP用户的权限,其中有分文件的权限目录的权限以及子目录的权限。

4、测试FTP站点。运行ipconfig/all,命令得到当前网络连接的可用IP地址。

5、为所建立的FTP服务设置动态域名解析服务配置,下载并安装花生壳客户端后,通过对免费域名做域名解析,得到当前域名已经解析到当前ADSL连接的公网IP上,至此花生壳动态域名解析服务已经完成。

6、设置成功后,进行验证。

花生壳是一款无需公网IP、无需设置路由器、可穿透内网,为全球1600多万用户提供服务的动态域名解析软件。当您安装并注册花生壳动态域名解析软件,无论您在任何地点、任何时间、使用任何线路,均可利用这一服务建立拥有固定域名和最大自主权的互联网主机。