一、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客户端软件
向有需要使用FTP客户端下载工具的会员推荐两款界面友好、操作简便的FTP客户端软件。
FlashFXP —— 自己目前一直在使用的客户端,功能强劲、界面操作非常人性化,推荐重点在于它的下载队列功能,添加下载队列很方便而且即使程序异常中断退出后再启动时下载队列会自动载入,不会丢失(除非你自己将队列文件删除),免去你重新在FTP服务器中查找需要下载的内容。不过如果FTP服务器设置了对(FTP_Bounce攻击和FXP)进行拦截的话可能会造成无法成功下载。但是无论怎样,该款FTP客户端软件还是作为首选推荐。
FTP Voyager —— 出品Serv-U FTP Server的RhinoSoft.com软件公司同步推出的FTP客户端软件,推荐它的理由明显的一点就是与Serv-U FTP Server是一对兼容性很好的配套软件,而且目前使用Serv-U作服务器端程序的很普遍。没有记错的话,此软件好像是在2004年电脑报十大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
[1] [2] 下一页