本节内容:
ftp主动模式与被动模式
ftp是客户使用较多的管理网站的工具,可以用来管理网站文件、图片等内容,有时会遇到无法连接的情况,但换一种连接模式又可以连接了呢?
首先,ftp关于主动模式与被动模式的原理。
ftp协议有两种工作方式:port(主动)方式和pasv(被动)方式。目前,我们使用较为广泛的是pasv(被动)方式,因为出于对服务器安全方面的考虑,我们一般会更改默认的ftp21端口,并提供几个被动模式端口用于ftp传输。
port(主动)方式的连接过程是:客户端向服务器的ftp端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用port命令告诉服务器:“我打开了xxxx端口,你过来连接我”。于是服务器从20端口向客户端的xxxx端口发送连接请求,建立一条数据链路来传送数据。
pasv(被动)方式的连接过程是:客户端向服务器的ftp端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用pasv命令告诉客户端:“我打开了xxxx端口,你过来连接我”。于是客户端向服务器的xxxx端口发送连接请求,建立一条数据链路来传送数据。 概括一下就是:主动模式:服务器向客户端敲门,然后客户端开门被动模式:客户端向服务器敲门,然后服务器开门所以,如果你是如果通过代理上网的话,就不能用主动模式,因为服务器敲的是上网代理服务器的门,而不是敲客户端的门而且有时候,客户端也不是轻易就开门的,因为有防火墙阻挡,除非客户端开放大于1024的高端端口。
所以,如果您的ftp出现了连接不了的情况,成都网站建设建议更改您的连接模式为“被动模式”!
ftp的主动模式和被动模式区别
一,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以上),然后把开放的端口告诉客户端, 客户端再连接到服务器开放的端口进行数据传输。
二,不同工作模式的网络设置
实际项目中碰到的问题是,ftp的客户端和服务器分别在不同网络,两个网络之间有至少4层的防火墙,服务器端只开放了21端口, 客户端机器没开放任何端口。ftp客户端连接采用的被动模式,结果客户端能登录成功,但是无法list列表和读取数据。很明显,是因为服务器端没开放被动模式下的随机端口导致。
由于被动模式下,服务器端开放的端口随机,但是防火墙要不能全部开放,解决的方案是,在ftp服务器配置被动模式下开放随机端口在 50000-60000之间(范围在ftp服务器软件设置,可以设置任意1024上的端口段),然后在防火墙设置规则,开放服务器端50000-60000之间的端口端。
主动模式下,客户端的ftp软件设置主动模式开放的端口段,在客户端的防火墙开放对应的端口段。
三,两种模式的比较
从上面的运行原来看到,主动模式和被动模式的不同简单概述为: 主动模式传送数据时是“服务器”连接到“客户端”的端口;被动模式传送数据是“客户端”连接到“服务器”的端口。
主动模式需要客户端必须开放端口给服务器,很多客户端都是在防火墙内,开放端口给ftp服务器访问比较困难。
被动模式只需要服务器端开放端口给客户端连接就行了。
四,如何设置 工作模式
实时上ftp服务器一般都支持主动和被动模式,连接采用何种模式是有ftp客户端软件决定。