FTP文件传输分为两种模式,主动(PORT)模式和被动(Passive)模式,用户应该用哪种?

简单粗暴,直接上答案

1)如果不是必须需要,不要使用FTP服务,主动/被动模式,命令/数据端口,初学者很容易一下子就被搞蒙。

2)如果一定要使用FTP服务,在今天的互联网环境里面,使用FTP被动模式进行连接传输。不要使用主动模式,除非你真的知道你在做什么

如果只是想知道答案的朋友,看到这里就可以了。对技术和原理感兴趣的朋友,请继续往下。

FTP两种模式协议过程和原理

被动模式

FTP被动模式原理图.png

从上图中可以看到,被动模式是FTP服务器返回数据传输需要的端口,FTP客户端去连接FTP服务端。

绝大部分的互联网应用(比如Web/Http),都是客户端向服务端发起连接。换句话说,绝大部分互联网应用都是被动模式。

主动模式

FTP主动模式原理图.png

从上图中可以看到,主动模式是FTP客户端向FTP服务器发送数据传输需要的端口,FTP服务端去连接FTP客户端的端口,与被动模式刚好相反。

需要注意的是,被动模式和主动模式的登录过程,都是FTP客户端去连接FTP服务器。

为什么绝大部分互联网应用都是被动模式

因为大部分客户端都是在路由器后面,没有独立的公网IP地址,服务器想要主动连接客户端,难度太大,在现在真实的互联网环境里面几乎是不可能完成的任务。