打印

基础知识:FTP为什么连不上之--FTP PORT方式和PASV方式的区

[复制链接]
5214|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xwj|  楼主 | 2007-9-21 07:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
FTP基础知识 

FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。 

FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。 
PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。 

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

PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。 

当需要传送数据时,服务器在命令链路上用 PASV命令告诉客户端:“我打开了****端口,你过来连接我”。于是客户端向服务器的****端口发送连接请求,建立一条数据链路来传送数据。 
从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。而FTP的复杂性就在于此。 

FTP服务器端的注意事项 

一、FTP服务器是公网IP,用公网动态域名;或是内网IP,用内网专业版TrueHost 

1、服务器如果安装了防火墙,请记住要在防火墙上打开FTP端口(默认是21)。 

2、所有FTP服务器软件都支持PORT方式。至于PASV方式,大部分FTP服务器软件都支持。支持PASV方式的FTP服务器软件,也可以设置为只工作在PORT方式上。 

3、为了PASV方式能正常工作,需要在FTP服务器软件上为PASV方式指定可用的端口范围(设置方法)。此外,还要在服务器的防火墙上打开这些端口。当客户端以PASV方式连接服务器的时候,服务器就会在这个端口范围里挑选一个端口出来,给客户端连接。 

二、FTP服务器是内网IP,用内网动态域名标准版cm*natpro*y 

这种情况下,FTP服务器不需要做特殊设置,只要支持PASV方式就可以了。大部分FTP服务器软件都支持PASV方式。 

FTP客户端的注意事项 

请注意:选择用PASV方式还是PORT方式登录FTP服务器,选择权在FTP客户端,而不是在FTP服务器。 

一、客户端只有内网IP,没有公网IP 

从上面的FTP基础知识可知,如果用PORT方式,因为客户端没有公网IP,FTP将无法连接客户端建立数据链路。因此,在这种情况下,客户端必须要用PASV方式,才能连接FTP服务器。大部分FTP站长发现自己的服务器有人能登录上,有人登录不上,典型的错误原因就是因为客户端没有公网IP,但用了IE作为FTP客户端来登录(IE默认使用PORT方式)。 

作为FTP站长,有必要掌握FTP的基础知识,然后指导您的朋友如何正确登录您的FTP。 

二、客户端有公网IP,但安装了防火墙 

如果用PASV方式登录FTP服务器,因为建立数据链路的时候,是由客户端向服务器发送连接请求,没有问题。反过来,如果用PORT方式登录FTP服务器,因为建立数据链路的时候,是由服务器向客户端发送连接请求,此时连接请求会被防火墙拦截。如果要用PORT方式登录FTP服务器,请在防火墙上打开 1024以上的高端端口。 

三、连接用内网标准版cm*natpro*y搭建的FTP服务,必须要用PASV方式。连接任何公网FTP服务器、或用内网专业版TrueHost搭建的FTP服务器,PORT方式和PASV方式都可以使用。 

当然,使用PORT方式的时候,还要满足上面的两个条件。 

四、常见的FTP客户端软件PORT方式与PASV方式的切换方法。 

大部分FTP客户端默认使用PASV方式。IE默认使用PORT方式。 

在大部分FTP客户端的设置里,常见到的字眼都是“PASV”或“被动模式”,极少见到“PORT”或“主动模式”等字眼。因为FTP的登录方式只有两种:PORT和PASV,取消PASV方式,就意味着使用PORT方式。 

IE: 

工具 -> Internet选项 -> 高级 -> “使用被动FTP”(需要IE6.0以上才支持)。 

CuteFTP: 

Edit -> Setting -> Connection -> Firewall -> “PASV Mode” 
或 
File -> Site Manager,在左边选中站点 -> Edit -> “Use PASV mode” 
FlashGet: 
工具 -> 选项 -> 代理服务器 -> 直接连接 -> 编辑 -> “PASV模式” 

FlashFTP: 

选项 -> 参数选择 -> 代理/防火墙/标识 -> “使用被动模式” 
或 
站点管理 -> 对应站点 -> 选项 -> “使用被动模式” 
或 
快速连接 -> 切换 -> “使用被动模式” 

LeechFTP: 

Option -> Firewall -> Do not Use 

五、请尽量不要用IE作为FTP客户端 

IE只是个很粗糙的FTP客户端工具。首先,IE6.0以下的版本不支持PASV方式;其次,IE在登录FTP的时候,看不到登录信息。在登录出错的时候,无法找到错误的原因。在测试自己的FTP网站的时候,强烈建议不要使用IE。 

相关帖子

沙发
孤独泪| | 2007-9-21 12:34 | 只看该作者

请问一下21ic的ftp下载到底什么设置

cuteftp 5.0xp 版本
主机是什么:
用户名是什么:
密码又是什么:

使用特权

评论回复
板凳
xwj|  楼主 | 2007-11-7 12:29 | 只看该作者

唉,21的FTP还是不正常

老是1分钟就超时断线,根本没法下载

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

xwj

288

主题

22797

帖子

35

粉丝