FTP主动模式与被动模式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FTP主动模式与被动模式
FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互
相传送文件。
相比于HTTP,FTP协议要复杂得多。
复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。
FTP 有两种工作模式:PORT方式和Passive方式中文意思为主动模式和被动模式。
这两种模式的主要区别在于数据连接的发起方和数据连接的端口号。
在主动模式(Port)下,数据连接由服务器发起,也就是三次握手的第一次是服务器
先来的,端口号服务器端 20,客户端随机。
这时只要放行 20 和 21 就可以。
在被动模式(Passive)下,数据连接由客户端发起,也就是三次握手的第一次是客户端先来的,端口号服务器端和客户端都是随机。
被动模式解决了防火墙阻止从服务器到客户端的传入数据端口连接的问题。
主动模式的FTP服务器数据端口固定在20,而被动模式(Passive)则在1025-65535之间随机
主动模式原理
在主动模式下,FTP 客户端首先从一个随机的非特殊端口(N > 1024)连接到 FTP 服务器的命令端口(21 端口)。
然后客户端在 N+1 端口监听,并通过 N+1 端口发
送命令给 FTP 服务器。
服务器接收到客户端的命令后,会从 20 端口连接到客户端指定的数据端口(N+1
端口),然后开始传输数据。
这意味着,在主动模式下,数据连接是由服务器发起的。
被动模式原理
在被动模式下,FTP 客户端首先从一个随机的非特殊端口(N > 1024)连接到 FTP 服务器的命令端口(21 端口)。
然后客户端发送 PASV 命令,告诉服务器它希望
使用被动模式。
服务器接收到 PASV 命令后,会打开一个随机的非特殊端口(P > 1024),并将 P
端口号发送给客户端。
客户端接收到 P 端口号后,会从 N+1 端口连接到服务器的
P 端口,然后开始传输数据。
这意味着,在被动模式下,数据连接是由客户端发起的。
主动FTP
主动方式的FTP是这样的:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口,也就是21端口。
然后客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。
接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。
针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP:
1.任何大于1024的端口到FTP服务器的21端口。
(客户端初始化的连接)
2.FTP服务器的21端口到大于1024的端口。
(服务器响应客户端的控制端口)
3.FTP服务器的20端口到大于1024的端口。
(服务器端初始化数据连接到客
户端的数据端口)
4.大于1024端口到FTP服务器的20端口(客户端发送ACK响应到服务器的
数据端口)
被动FTP
为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。
这就是所谓的被动方式,或者叫做Passive,当客户端通知服务器它处于被动模式
时才启用。
在被动方式FTP中,命令连接和数据连接都由客户端发起,这样就可以解决从服
务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。
当开启一个 FTP连接时,客户端打开两个任意的非特权本地端口(N > 1024和
N+1)。
第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不
会提交PORT命令并允许服务器来回连它的数据端口,而是提交 Passive命令。
这
样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORT P
命令给客户端。
然后客户端发起从本地端口N+1到服务器的端口P的连接用来传
送数据。
对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP:
1.从任何大于1024的端口到服务器的21端口(客户端初始化的连接)
2.服务器的21端口到任何大于1024的端口(服务器响应到客户端的控制端口
的连接)
3.从任何大于1024端口到服务器的大于1024端口(客户端初始化数据连接到
服务器指定的任意端口)
4.服务器的大于1024端口到远程的大于1024的端口(服务器发送ACK响应和
数据到客户端的数据端口)
如何选择 FTP 的工作模式
选择 FTP 的工作模式通常取决于你的网络环境和防火墙设置。
如果你的客户端防
火墙阻止了从服务器到客户端的传入数据端口连接,那么你应该选择被动模式。
在被动模式下,客户端会发起到服务器的两个连接,解决了防火墙阻止从服务器到客户端的传入数据端口连接的问题。
如果你使用的 FTP 客户端支持主动模式和被动模式,那么你可以在客户端的设置
中选择工作模式。
如果你使用命令行 FTP 客户端,那么你可以使用 passive 命令在
主动模式和被动模式之间切换。
主动与被动FTP优缺点:
主动模式的优点是它比较简单,只需要在服务器端开放20 和21 端口即可。
但是,主动模式的缺点是它可能会被客户端的防火墙阻止,因为它需要服务器主动连接到客户端的数据端口。
被动模式的优点是它解决了防火墙阻止从服务器到客户端的传入数据端口连接的问题。
在被动模式下,客户端会发起到服务器的两个连接,因此不会被客户端的防火墙阻止。
但是,被动模式的缺点是它需要在服务器端开放更多的端口,这可能会增加安全风险。
总之,选择哪种工作模式取决于你的网络环境和安全需求。
如果你的客户端防火墙阻止了从服务器到客户端的传入数据端口连接,那么你应该选择被动模式。
否则,你可以根据自己的喜好选择主动模式或被动模式。