PORT模式和PASV模式
PORT模式下的FTP服务:
缺省情况下PORT模式的数据端口是20, 控制端口是21(控制端口可以设定, 本文假定使用21)。 当进行连接时,客户端使用一个
随机的端口N(N大于1024)连接服务器的控制端口21, 然后客户端开始监听端口N+1,并向服务器发送命令 PORT N+1,服务器用自
己的数据端口20连回客户的N+1端口。
由于PORT模式仅仅是发送端口给服务器,由服务器连回客户端,如果客户端有防火墙,这样的连接会被认为是外部主机试图连接内
部的主机, 通常情况下是不允许的。
为了解决这个问题, 引入了PASV模式
PASV模式下的FTP服务:
当进行连接时,客户端使用一个随机的端口N(N大于1024)
连接服务器的控制端口21, 并向服务器发送命令 PASV,服务器使用一个随机的数据端口M(M>1024)并发回客户端, 客户端用数据端
口N+1连接服务器的端口M。
由于客户端发起数据连接, 这样就解决了防火墙带来的问题。