Chinaunix首页 | 论坛 | 博客
  • 博客访问: 558694
  • 博文数量: 114
  • 博客积分: 5611
  • 博客等级: 大校
  • 技术积分: 1027
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-19 08:55
文章分类

全部博文(114)

文章存档

2011年(29)

2010年(20)

2009年(1)

2008年(11)

2007年(53)

分类: LINUX

2007-08-31 17:48:21

一、FTP基础知识

  FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件,和HTTP协议相比,FTP协议要复杂得多。复杂的原因在于FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令,另一个是数据链路,用来上传或下载数据。如果用户要将若干个文件从自己的计算机上发送到一台FTP服务器上,就应使用FTP上载(upload)或(put)。而更多的情况是用户使用FTP下载(download)或获取(get)文件以及对FTP服务器进行文件删除、更名、移动等管理行为。

  FTP协议有两种工作方式:PORT方式和PASV方式,意为主动方式和被动方式。

  PORT(主动方式)的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接并建立一条命令链路。当需要传送数据时,客户端在命令链路上用 PORT命令告诉服务器:“我打开了*****端口,你过来连接我”。于是服务器从20端口向客户端的*****端口发送连接请求,建立一条数据链路来传送数据。

  PASV(被动方式)的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用 PASV命令告诉客户端:“我打开了*****端口,你过来连接我”。于是客户端向服务器的*****端口发送连接请求,建立一条数据链路来传送数据。

  从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。而FTP的复杂性就在于此。两种方式的具体选择应随着FTP服务器的设置而做出跟服务器要求一致的FTP客户端设置,否则命令链路成功而数据链路会被服务器中断,就会出现很多朋友描述的无法列表、无法下载之类的现象。

二.FTP常见问题解答

  Q:该如何设置FTP软件的参数?
  A:FTP软件在上传下载时一般需要填写三个参数:host address(主机地址)或是FTP SERVER(FTP域名),在此处填写FTP服务器的域名(如:hotinfo.3322.org);username (登录用户),在此处填写FTP服务器中开设的用户名(如:LIST);password(登录密码),在此处填写登录用户对应的正确登录密码(如:LIST)。另外还需根据服务器特定要求设定访问端口和方式等参数。

  Q:为什么我的FTP软件连不上服务器?
  A:首先请检查网络是否通畅(可以PING一下站点主机,比如:ping hotinfo.3322.org -t),再请检查FTP软件中该FTP主机域名和端口设置是否正确,最后查一下您是否使用了某些防火墙或网关代理软件,看这些软件是否将FTP的默认21端口和其他需用的端口屏蔽了。

  Q:FTP连接后,无法列表?
  A:用户在使用FTP上传下载文件时出现无法列表的情况,可能是由于没有根据FTP服务器设置要求正确选择PASV方式或PORT方式进行上传下载而导致的。因此,请用户根据服务器要求相应调整PASV方式或PORT方式。不同的FTP客户端软件,不同的软件版本,设置方法也会略有不同,因此需要根据实际情况进行设置。一般这个设置多出现在FTP站点管理器的选项页签内,很容易找到。

  Q:为什么我上传下载时会提示“Socket 链接错误”或“Can't open data connection.”?
  A:如果你的电脑于操作系统中装有防火墙或杀毒软件,很有可能会造成上述的错误。建议在使用FTP作上传下载时先暂时将防火墙或杀毒软件关闭。如果继续使用防火墙,请为FTP设置“应用程序设置规则”。

  Q:为什么上传下载的文件与原文件比较字节数改变且可能不好用了?
  A:有时上传下载文件时,特别是某些二进制文件(但它的扩展名是文本文件的扩展名),传送完成后,发现该文件的字节数不对。在这种情况下,请将FTP软件的设置改为二进制传输模式(binary)。如果是用DOS提示符下的FTP命令,可以在FTP登录成功后,输入binary命令(当然现在一般人都不会再使用这样的方式),再上传下载文件。


三、FTP常见响应代码注释

  230 User logged in, proceed. Logged out if appropriate.
  用户已登入。如果不需要可以注销退出。

  250 Requested file action okay, completed.
  被请求文件操作成功完成。

  257 "PATHNAME" created.
  路径已建立

  331 User name okay, need password.
  用户名存在,需要登录密码

  332 Need account for login.
  需要登录的账号

  350 Requested file action pending further information
  对被请求文件的操作需要更多的信息

  421 Too many user……Service not available, closing control connection.This may be a reply to any command if the service knows it must shut down.
  连接用户数已满……服务不可用,控制连接关闭。这可能是对任何命令的回应,如果服务认为它必须关闭

  425 Can't open data connection.
  打开数据连接失败

  426 Connection closed; transfer aborted.
  连接关闭,传送中止。

  450 Requested file action not taken.
  对被请求文件的操作未被执行

  451 Requested action aborted. Local error in processing.
  请求的操作中止。处理中发生了本地错误。

  452 Requested action not taken. Insufficient storage space in system.File unavailable (e.g., file busy).
  请求的操作没有被执行。系统存储空间不足。文件不可用。(如:文件正被使用)

  500 Syntax error, command unrecognized. This may include errors such as command line too long.
  语法错误,不可识别的命令。这可能是命令行过长。

  501 Syntax error in parameters or arguments.
  参数错误导致的语法错误

  502 Command not implemented.
  命令未被执行

  503 Bad sequence of commands.
  命令的次序错误。

  504 Command not implemented for that parameter.
  由于参数错误,命令未被执行。

  530 Not logged in.
  没有登录

  532 Need account for storing files.
  存储文件需要账户信息

  550 Requested action not taken. File unavailable (e.g., file not found, no access).
  请求操作未被执行,文件不可用。(如:文件未找到,没有存取权限)

  551 Requested action aborted. Page type unknown.
  请求操作中止,页面类型未知

  552 Requested file action aborted. Exceeded storage allocation (for current directory or dataset).
  对请求文件的操作中止。超出存储分配(对当前文件夹或者数据集)

  553 Requested action not taken. File name not allowed.
  请求操作未被执行。文件名未获允许。

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