扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
来源:互联网 2010年7月6日
关键字: 网络
FTP协议是我们最熟知的协议之一。它的作用就是进行文件传送。那么我们今天闲来对这部分的基础概念进行一下了解,然后对ftp命令进行服务器架构进行一下分析。
FTP在RFC 959中具体说明?HTTP和FTP都是文件传送协议,它们有许多共同的特征,比如都运行在TCP之上等?不过这两个应用层协议之间存在重要的差别?最重要的差别是FTP使用两个并行的TCP连接,一个是控制连接,一个是数据连接?控制连接用于在客户主机和服务器主机之间发送控制信息,例如用户名和口令?改变远程目录的命令?取来或放回文件的命令?数据连接用于真正发送文件?在整个会话期间,FTP服务器必须维护关于用户的状态?具体地说,服务器必须把控制连接与特定的用户关联起来,必须随用户在远程目录树中的游动跟踪其当前目录?为每个活跃的用户会话保持这些状态信息极大地限制了FTP能够同时维护的会话数?无状态的HTTP却不必维护任何用户状态信息?FTP协议可以工作在主动模式(active)和被动模式(passive)二种模式下:
主动模式(一般FTP服务器默认模式):FTP客户端开启一个随机选择的TCP端口连接FTP服务器的21端口请求建立连接?当完成Three-Way Handshake后,连接就成功建立,但这仅是控制连接的建立?当两端需要传送数据的时候,客户端通过命令通道用一个port command告诉服务器,客户端可以用另一个TCP端口做数据通道?然后服务器用20端口和刚才客户端所通知的TCP端口建立数据连接?注意:连接方向是从服务器到客户端的,TCP分组中会有一个SYN flag? 然后客户端会返回一个带ACK flag的确认分组,并完成另一次的Three-Way Handshake 过程?这时候,数据连接才能成功建立?开始数据传送?
被动模式:FTP客户端开启一个随机选择的TCP端口连接FTP服务器的21端口请求建立连接,完成控制连接的建立?当两端需要传送数据的时候,客户端 通过命令通道发送一个PASV command给服务器,要求进入被动传输模式?然后 服务器像上述的主动模式第 2 步骤那样,挑一个TCP端口,并用控制连接告诉 客户端? 然后客户端用另一个TCP端口连接刚才服务器告知的TCP端口来建立数据通道?此时分组中带有SYN flag?服务器确认后回送一个ACK分组?并完成所有握手过程?成功建立数据通道,开始数据传送?
目前可以实现FTP服务的软件非常多,比如Windows平台下的IIS?Serv-U,Linux平台下的wuFTP?vsftp等?vsftp(Very Secure FTP)是一种在Unix/Linux中非常安全且快速稳定的FTP服务器,目前已经被许多大型站点所采用,vsftpd也是RHEL默认的ftp服务,本文主要讲述vsftp相关配置方法?
一?安装vsftp?
rpm -ivh vsftpd-2.0.5-12.el5.rpm
安装完成后,vsftpd配置文件为/etc/vsftpd/vsftpd.conf,通过以下命令可启动vsftpd并将其设置为自动启动?
service vsftpd restartchkconfig vsftpd on
二?第一个FTP协议站点?
vsftp在安装完成并启动后,即可使用?默认情况下可以使用匿名用户,下图中使用ftp命令进行?
1:使用ftp命令连接到ftp服务器?
2:因为目前使用匿名用户连接到ftp服务器,所有输入匿名用户(一般ftp服务器匿名为anonymous,这里的ftp用户是在安装vsftp时自动创建的,该用户也是vsftp的匿名用户)?
在连接到vsftp后,其默认目录为该用户的家目录,而ftp用户的家目录位于/var/ftp,所有?下图是用系统其它用户连接ftp协议服务器(如果在RHEL中开启SELinux,需要运行以下命令set sebool -P ftp_home_dir=1)?
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。