May 5, 2015 · FTP

FTP协议中的主动模式与被动模式

我们都知道FTP是一种简单的、安全级别较低的或者说是保密性很差的文件传输协议,它基于TCP协议需要经过三次握手后建立一条连接。这条连接建立后只能用来传送操作指令我们称之为命令连接,当命令连接建立以后服务器和客户端之间还需要建立一条连接用来传送数据,而这条连接却是使用了另外一个端口。

这里先来了解下主动模式(PORT)和被动模式(PASV)分别是怎么连接的

不难看出,主动模式和被动模式在命令连接的建立上都是一致的,区别在于数据连接的建立方式。主动模式是从服务器端向客户端发起连接;被动模式是客户端向服务器端发起连接。两者的共同点是都使用21端口进行用户验证及管理,差别在于传送数据的方式不同,PORT模式的FTP服务器数据端口固定在20,而PASV模式则在1025-65535之间随机。

两种模式的是侧重点:

最好的方法是取中庸之道,使用被动模式在保证客户端最大连接的情况下,限制随机端口的范围,比如3000-3100。这样做既减少暴露的端口,也方便服务端对其他高位随机端口进行限制。

模式选择不当可能会出现的问题

如果通过代理上网不能用主动模式,因为服务器连接到的是上网代理服务器,而不是客户端的,所以会失败。

相关文章:Linux下搭建FTP服务