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)