FTP 协议在工作时开启两个端口,一个用与服务器与客户机 之间传输控制命令(通常为 21) ,一个用来传输数据。并且根据实际情况的不同,有主动被 动模式之分(主动被动仅对服务器而言。 )
PORT(主动模式)
默认 FTP 客户端工作在主动模式下,客户端指定数据传输端口,服务器主动去连接客户端。
PASSIVE (被动模式)
当 FTP 客户端采用被动模式连接时, 服务器指定数据传输端口,服务器被动等待客户端连接。 通常默认的 FTP 客户端均采取主动模式,即等待服务器主动连接,同时也为了避免 NAT 代理服务器 防火墙等影响,有更改为被动模式的选项。
下面的图表会帮助管理员们记住每种 FTP 方式是怎样工作的:
主动 FTP:
命令连接:客户端 >1023端口 -> 服务器 21端口
数据连接:客户端 >1023端口 <- 服务器 20端口
被动 FTP:
命令连接:客户端 >1023端口 -> 服务器 21端口
数据连接:客户端 >1023端口 -> 服务器 >1023端口
下面是FTP主动模式与被动模式优缺点的简要总结:
主动 FTP 对 FTP 服务器的管理有利,但对客户端的管理不利。因为 FTP 服务器企图与客户 端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。被动 FTP 对 FTP 客户端的管理有利, 但对服务器端的管理不利。 因为客户端要与服务器端建立两个连接 , 其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。 幸运的是,有折衷的办法。既然 FTP 服务器的管理员需要他们的服务器有最多的客户连接, 那么必须得支持被动 FTP。我们可以通过为 FTP 服务器指定一个有限的端口范围来减小服 务器高位端口的暴露。这样,不在这个范围的任何端口会被服务器的防火墙阻塞。虽然这没有消除所有针对服务器的危险,但它大大减少了危险。