首页 > 代码库 > ftp 服务器的主动模式和被动模式
ftp 服务器的主动模式和被动模式
主动模式:由服务器主动连接客户机建立数据链路。
FTP 客户机由大于 1024 的的 N 端口向 FTP 服务器的 21 号端口发出一个连接请求,请
求建立命令链路,然后 FTP 服务器由 21 号端口向客户机的 N 端口回应,确认建立命令链
路;建立命令链路后,FTP 服务器的 20 号端口会向客户端的 N+1 号端口发送一个连接请
求主动建立数据链路连接,FTP 客户端由 N+1 号端口向 FTP 服务器的 20 号端口回应后确
认建立一个数据链路,进行数据传输。
被动模式:FTP 服务器等待客户机建立数据链路。
FTP 客户机由大于 1024 的 N 号端口向 FTP 服务器的 21 号端口发出一个连接请求,请
求建立命令链路,FTP 服务器由 21 号端口向 FTP 客户机的 N 端口回应,确认建立一个命
令链路;然后 FTP 服务器会通过已经建立的命令链路通知客户机自己已经打开了一个大于
1024 的端口 X,用于建立数据链路,当需要传输数据时,FTP 客户机会通过 N+1 号端口向
FTP 服务器的 X 号端口请求建立数据链路,数据链路建立成功后进行数据传输。
主动模式配置
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
被动模式配置
pasv_enable=YES
pasv_min_port=10000
pasv_max_port=20000
主动FTP:
命令连接:客户端 >1024端口 -> 服务器 21端口
数据连接:客户端 >1024端口 <- 服务器 20端口
被动FTP:
命令连接:客户端 >1024端口 -> 服务器 21端口
数据连接:客户端 >1024端口 -> 服务器 >1023端口
主动与被动FTP优缺点的简要总结:
主动FTP对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。
本文出自 “sdsca” 博客,请务必保留此出处http://sdsca.blog.51cto.com/10852974/1908534
ftp 服务器的主动模式和被动模式