详解关于FTP的主动模式和被动模式 | 周良博客

我是创始人李岩:很抱歉!给自己产品做个广告,点击进来看看。  

使用虚拟主机的时候,往往需要使用FTP相关软件客户端上传网站文件,但是往往在连接FTP客户端过程出现这样或那样的问题.授人以鱼不如授人以渔,今天周良在这里将向大家详解关于FTP连接的两种模式,和大家一同分享,只要搞懂了FTP的连接过程,以后遇到相应的连接问题就可以轻松搞定了。

众所周知,主动和被动模式是可以在FTP运行的两种模式.FTP使用两个端口,一个数据端口和一个命令端口(也可叫做控制端口).命令端口具有命令和响应的作用,数据端口实际上起着传输文件的作用。

在主动模式下,客户端建立命令通道,(从客户端端口X到服务器端口21),然后客户端开始监听端口X+1,并发送FTP命令“port X+1 到FTP服务器”,同时服务器建立数据通道,来自服务器端口20到客户端端口X+1。

在被动模式下,客户端建立了双向通道(命令连接和数据连接都由客户端来执行),在这种模式下,服务器将告知客户端哪个端口将被使用在数据通道中.FTP服务器不能建立数据端口时,通常是由于客户端防火墙阻塞造成.此时使用被动模式,即可正常连接FTP。

下面将介绍FTP两种模式的连接过程:

主动模式:

active

 

(1)客户端打开命令端口X(X>1024)连接到服务器的21端口。

(2)客服端发送命令端口X+1到服务器,服务器接受该命令端口。

(3)服务器建立数据通道,并将来自服务器20端口连接到客户端X+1端口的数据端口。

(4)客户端接受该数据通道。

被动模式:

pasv

(1)客户端打开命令端口X(X>1024)到服务器21端口。

(2)客户端在该命令通道中,发送“PASV”命令给服务器。

(3)服务器在监听该端口后,将会开启一个任意的非特权端口Z(Z>1024),返回并发送给客户端。

(4)客户端建立数据通道,并从本地端口X+1发送到服务器Z端口。

(5)服务器接受该数据通道。

注意

在主动模式配置下,服务器将企图连接到一个随即的客户端端口.很可能该端口并不在客户端防火墙预设开放的端口设定之内.因此,该连接将会被防火墙所阻挡,并且该连接也不会被建立,如下图所示:

avtive1

该类问题可以通过降低本地防火墙级别或者暂时关闭本地防火墙得到解决,当然也可以 使用被动模式得到解决(前提是该FTP服务器开放了一个指定范围内的服务器端口,而不是只开放了20和21端口),大家不要担心你们使用的虚拟主机是否支持被动模式连接,周良在这里向大家推荐一款也是我目前在使用的虚拟主机:香港主机91,完美支持使用主动模式和被动模式连接FTP客户端软件,让你从此告别FTP连接不上的烦恼。



about the author: xiaowu
如果你的项目需要人帮助做设计,架构,重构或开发, 欢迎找我做咨询!联系方式: jack@aips.me
本站长期承接 WordPress 项目,详情请 Email:jack@aips.me。

随意打赏

提交建议
微信扫一扫,分享给好友吧。