ftp的passive模式

今天在一台测试服务器上搭建ftp,折腾了许久。

主要是不了解ftp的passive模式和port模式的区别。这里记录一下。

和passive模式对应的叫做port模式,也叫做standard模式,也叫主动模式。

每个ftp客户端和服务端建立连接需要建立两个连接,一个连接用于命令传输,一个连接用于数据传输。

命令传输不管主动模式还是被动模式,都是客户端主动连接服务端建立的。

但是数据传输就不同了。

主动模式的图

主动模式的主动说的是服务端主动。当要进行数据传输的时候,客户端先向服务端告知一个端口,然后在客户端开启端口listen。由服务端主动连接这个端口,建立数据传输通道。

被动模式的图

被动模式的被动说的也是服务端。当要进行数据传输的时候,服务端告知客户端一个端口,然后在服务端开启端口listen,由客户端主动连接这个端口,服务端被动接受连接,建立数据传输通道。

有什么不同

这两种连接方式最大的不同在于是否服务端主动发起连接。由于防火墙,安全等策略,很多情况下根本不允许服务端主动发起连接。所以在很多情况下会建议使用被动模式(Passive)。

被动模式就要求服务端开启端口,这个端口是可以指定的

MaxInstances 30
PassivePorts 8040 8070

这样就指定了同时允许有30个连接,其中的服务器开启的数据传输端口为8040 - 8070。

参考

Proftpd快速搭建FTP服务器

关于ftp的主动模式(Active Mode)和被动模式(Passive Mode)