Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3304287
  • 博文数量: 266
  • 博客积分: 3081
  • 博客等级: 中校
  • 技术积分: 2640
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-04 10:35
个人简介

没什么好介绍的!穷屌丝一个~

文章分类

全部博文(266)

文章存档

2021年(3)

2020年(1)

2019年(2)

2016年(5)

2015年(1)

2014年(1)

2011年(9)

2010年(16)

2009年(31)

2008年(58)

2007年(111)

2006年(2)

2005年(26)

我的朋友

分类: LINUX

2005-07-25 13:55:48

FTP(File Transfer Protocol)的缩写,即文件传输协议。其是TCP/IP协议族中的一种具体应用,它工作在OSI模型的第七层,即应用层上,其使用TCP协议传输,即FTP传输的所有文件都是通过“三次握手”实现,也就是说当客户端与服务器端之间的数据包传输,一旦出现丢包现象,会重新传输,以保证数据的可靠。 FTP协议要使用两个TCP连接传送数据,一个是命令连接,用来在FTP客户端与服务器之间传递命令;另一个是数据连接,用来上传或下载数据。这就直接导致FTP需要2个端口,一个端口用于控制连接,即21端口,发送指令给服务器以及等待服务器响应;另一个端口是数据传输端口,端口号为20,是用来建立数据传输通道。 FTP的连接模式有两种,PORT(主动模式)和PASV(被动模式), 主动模式的连接过程是:客户端动态的选择一个端口(这个端口号一定是1024以上的,因为1024以前的端口都已经预先被定义好)向服务器端的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一个命令连接。当需要传送数据时或者列出服务器的文件列表时(通常使用ls或dir命令),客户端通过命令连接告诉服务器(使用PORT命令):“我已经打开了XX端口,请你过来连接”。于是服务器使用20端口向客户端的XX端口发送连接请求,建立一条数据连接来传送数据。 被动模式:客户端首先使用与主动连接模式相同的方法与服务器建立命令连接。当需要传送数据时,客户端通过命令连接告诉服务器(使用PASV命令)“我要连接你的XX端口,请问是否空闲”,如果恰好该端口空闲,服务器会告诉客户端:“你请求的端口空闲,可以建立连接(ACK确认信息)”,否则服务器会说“该端口已经占用,请换个端口(UNACK信息)”。如果客户端得到的是空闲的提示,就会利用该端口建立连接,否则就换个端口重新尝试,这也就是所谓的连接建立的协商过程. PORT模式建立数据传输通道是由服务器端发起的,服务器使用20端口连接客户端的某一个大于1024的端口;在PASV模式中,数据传输的通道的建立是由FTP客户端发起的,他使用一个大于1024的端口连接服务器的1024以上的某一个端口。如果从C/S模型这个角度来说,PORT对于服务器来说是OUTBOUND,而PASV模式对于服务器是INBOUND.

继续实验:‘两权分立’的FTP工作模式 工作环境: ADSL---(219.154.214.150)NAT(10.41.221.2)-----PC(10.41.221.6/FTP SERVER) 1、映射21端口到PC,PC安装FTP服务serv-u,用serv-u是因为他可以方便的设置FTP的两种工作模式。外网发起连接为例。 PORT方式 能连接,不能列目录 PASV方式 能连接,不能列目录 分析:FTP 支持两种模式。这两种模式被称为“标准”(或 PORT,或“主动”)和“被动”(或 PASV)。“标准”模式 FTP 客户端会向 FTP 服务器发送PORT 命令。“被动”模式客户端会向 FTP 服务器发送PASV 命令。这些命令是在建立 FTP 会话时通过 FTP 命令通道进行发送的。 2种模式 FTP 客户端都要建立一个到 FTP 服务器上 TCP 端口 21 的连接。客户选择大于1024的端口发起连接,此连接会建立 FTP 命令通道。不能列目录是因为FTP使用不同的通道来传递数据,这也是FTP不同于HTTP服务的地方,HTTP需要一条通道就可以 了 2、再映射20端口到PC,serv-u默认的方式就是PORT方式。 PORT方式 能连接、也能列目录、能下载文件 PASV方式 能连接、不能列目录下载文件 分析:PORT方式:当 FTP 客户端需要接收数据(如文件夹列表或者文件)时,客户端就会通过FTP 命令通道发送PORT 命令。此PORT 命令包含了 FTP 客户端在哪个端口(比如3328)上接收数据的相关信息。接下来,PC从 TCP 端口 20发起到3328用户端口的连接 ,而这是一个新的连接,也许客户端防火墙会拦截。可以看出是服务器用20端口“主动”连接客户指定的端口,所以PORT方式也叫主动方式。该模式下有2个特点: 1 客户是动态的端口,而服务器使用的是固定端口20,而且是服务器发起主动新连接。 2 在FTP客户连接服务器的整个过程中,控制信道是一直保持连接的,而数据传输通道是临时建立的。 PASV方式不能到达是因为PASV要求服务器用动态的端口来连接,而这个端口一般在1024-5000之间,而且是用户发起连接,虽然PC开了此端口等待连接,但是NAT并没有映射这么多端口,所以通讯中断。 3 关闭20端口映射,再映射10001-10004到PC PORT方式 能连接、不能列目录、不能下载文件 PASV方式 能连接、 不能列目录 、不能下载文件 serv-u很帅,在设置(高级)选项中设置10001-10004,然后启动被动模式,这样就可以建立连接了。 分析: 以前也做过这个实验,发现有个理解不全面的的地方,原因是他直接在可以见面的2台计算机上做的实验,而我把他们用NAT分开来做,更能看出问题。 问题出在所谓的“协商过程”,原文是这样的: “发送PASV指令,在这个指令中,用户告诉服务器自己要连接服务器的某一个端口,如果这个服务器上的这个端口是空闲的可用的,那么服务器会返回ACK的确认信息,之后数据传输通道被建立并返回用户所要的信息(根据用户发送的指令,如ls、dir、get等);如果服务器的这个端口被另一个资源所使用,那么服务器返回UNACK的信息,那么这时,FTP客户会再次发送PASV命令,这也就是所谓的连接建立的协商过程” 其实我抓到的报文是这样的: 1 serv-u在设置PASV方式是可以指定端口,而且端口被立即启动到监听状态,比如我设置是10001-10004,可以用有关软件“看到”这些端口已经被置为监听。 2 当客户端通过该命令通道发送PASV 命令时,FTP 服务器会打开一个短暂的端口,并通知 FTP 客户端从该端口请求数据传输,而不是协商解决。FTP 服务器通过将该短暂端口用作,数据传输的源端口来对该请求作出响应。显然,这个连接是由用户发起的,过也叫被动方式。 3 在FTP客户连接服务器的整个过程中,控制信道是一直保持连接的,而数据传输通道是临时建立的。 4 端口在1024-5000之间,不要大于5000,为什么呀,我也不知道,因为我设置5000以上就不能建立TCP连接,实际是这样理论我也不知道。 我没有用其它软件做FTP服务器,不能确定是否有协商过程,如果FTP这么弱智,那要协商到什么时候,不如直接告诉客户不就行了。 缺点是端口有限,如果多个用户同时连接,这几个端口是不够的。 4 解决PASV模式不能传数据的问题的办法: 不能传数据的问题出在:服务器向客户端传送了IP。当FTP客户端登录进入服务器的时候,PASV模式服务器会向客户端传送本机的IP地址和数据端口,当服务器放在内网中的时候,服务器会向客户端返回内网的IP,这当然是不能完成连接的,需要让服务器返回外网的地址。 serv-u真的很帅,就是serv-u本身具有返回外网地址这样的功能,方法是先选中新建FTP服务器的属性,在domain标签里选择“enable dynamic dns”,此时会出现第二个标签,叫“dynamic dns”,然后到tz0.com申请动态域名,申请后会得到一个key,在此标签中填入此key即可。最后一步,是到新建服务器的settings属性中,选择advanced标签,选中“allow passive mode data transfer”,旁边的IP地址框留空。这个框对于拨号用户不用填,只有出口使用固定地址才需要填。 总结:采用什么方式是由用户决定的,而主动和被动之说是相对服务器而言。在FTP客户连接服务器的整个过程中,控制信道是一直保持连接的,而数据传输通道是临时建立的。主动方式下是服务器以20端口发起连接,而被动方式下服务器告诉客户一个动态端口,由客户发起连接。如果你使用FTP客户端程序是只能登录不能传数据,不妨换一种工作模式,当然需要服务器支持。 关于防火墙 对外网用户而言,你的防火墙如果不接受主动连接,麻烦大了:标准模式 FTP 客户端无法在此环境中运行,因为 FTP 服务器必须向 FTP 客户端发出新的连接请求。 对服务器而言,防火墙管理员可能不希望使用 PASV FTP 服务器,因为 FTP 服务器可以打开任何短暂端口号,如果防火墙配置允许未经请求的连接完全访问所有的短暂端口,则可能会是不安全的。 小技巧,IE默认使用主动方式发起连接,要想使用被动方式,需要设置 IE-工具-Internet 选项-高级 在浏览下面,单击“为 FTP 站点启用文件夹视图”复选框,将其清除。 单击“使用被动 FTP(为防火墙和 DSL 调制解调器兼容性)”复选框,将其选中。 单击确定。 如果选中了“为 FTP 站点启用文件夹视图”复选框,Internet Explorer 的表现就会像“标准” 模式 FTP 客户端一样,即使您还选中了“使用被动 FTP”复选框也是如此。如果您清除了“为FTP 站点启用文件夹视图”复选框,然后选中“使用被动 FTP”复选框,Internet Explorer 的表现就会像“被动”模式 FTP 客户端一样。

阅读(1458) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~