Centos下搭建vsftpd服务(1)---- FTP主被两种模式
------------摘自网络搜索
大多数的TCP服务是使用单个的连接,一般是客户向服务器的一个周知端口发起连接,然后使用这个连接进行通讯。但FTP协议却是例外,它使用双向的多个连接,而且使用的端口很难预计。
FTP连接包括:
一个控制连接(controlconnection)
这个连接用于传递客户端的命令和服务器端对命令的响应。它使用周知的TCP21端口,生存期是整个FTP会话时间。
N个数据连接(dataconnection)
这些连接用于传输文件和其它数据,例如:目录列表等。这种连接在需要数据传输时建立,而一旦数据传输完毕就关闭,每次使用的端口也不一定相同。而且,这种数据连接既可能是客户端发起的,也可能是服务器端发起的。FTP协议使用一个标准的端口20作为ftp-data端口,但是这个端口只用于连接的源地址是服务器端的情况,在这个端口上根本就没有监听进程。
主动与被动模式
FTP的数据连接和控制连接的方向一般是相反的,即服务器向客户端发起一个用于数据传输的连接。连接的端口是由服务器端和客户端协商确定的,这就是vsftpd的主动模式(portmod)。FTP协议的这个特征对iptables防火墙和NAT的配置增加了很多困难。在FTP被动模式(passivemod)下,数据连接是由客户程序发起的,和主动模式相反。
选择模式的原则
1、client没有防火墙时,用主动模式连接即可
2、server没有防火墙时,用被动模式即可
3、双方都有防火墙时,vsftpd设置被动模式高端口范围,server打开那段范围,client用被动模式连接即可
是否采取被动模式取决于客户程序,在ftp命令行中使用命令就可以关闭/打开被动模式。
在xp命令行模式下使用ftp命令连接ftp服务器,用的是主动模式。浏览器方式下连接ftp服务器,可以修改访问使用的模式。