您的位置:首页 > 编程语言 > PHP开发

ftp服务器可以用最原始的命令访问,但是不能用cuteftp等工具访问

2014-03-24 17:26 330 查看
作者:iamlaosong
从总部数据下载服务器上下载数据, 但只能在命令提示符下用命令下载文件,用cuteftp等工具访问虽然可以看到目录,但却无法下载数据,cuteftp停在那儿不动了。虽然cuteftp等工具不能访问,IE还是可以访问的,只需要输入类似下面的服务器地址就行了(song:song1234是FTP的用户名和口令):
ftp://song:song1234@10.178.40.196/

经网上查资料和试验,找到问题所在,原来是连接模式不对,FTP有两种传输的模式的,主动模式和被动模式,把PASV模式改成PORT模式就可以了,下图是cuteftp的设置界面(菜单:编辑->全局设置):



问题解决了,然而知其然还要知其所以然,所以找到了以下资料,重新整理了下:

一个完整的FTP文件传输需要建立两种类型的连接,一种为文件传输下命令,称为控制连接,另一种实现真正的文件传输,称为数据连接。

1. 控制连接

客户端希望与FTP服务器建立上传下载的数据传输时,它首先向服务器的TCP 21端口发起一个建立连接的请求,FTP服务器接受来自客户端的请求,完成连接的建立过程,这样的连接就称为FTP控制连接。

2. 数据连接

FTP控制连接建立之后,即可开始传输文件,传输文件的连接称为FTP数据连接。FTP数据连接就是FTP传输数据的过程,它有两种传输模式

PORT(主动)方式的连接过程是:

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

PASV(被动)方式的连接过程是:

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

简单的说就是:PORT(主动)方式是客户端打开一个端口让服务器连,PASV(被动)方式正好相反。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: