关于FTP的PASV模式和PORT模式分析

最近帮公司的服务器架设FTP,用的是Serv-U,在账号密码都正确的情况下状态窗口老是出现 “[右] 数据 Socket 错误: 连接超时 [右] 列表错误 [右] PASV 模式失败, 尝试 PORT  模式。”的错误。同时卡死在列目录状态下,而在远程登陆服务器的情况下可以看到此用户是登陆的,但过了大概3~6分钟最后又自动链接成功了,提示:"PORT  模式成功, 请更新你的站点配置文件";

于是找资料,发现是FTP客户端软件连接模式设置的问题。这个服务器要求的是PORT模式(主动模式),而FTP客户端设置的是PASV模式(被动模式)。所以只要把PASV模式改成PORT模式即可顺利连接。 数据 Socket 错误: 连接超时 [右] 列表错误 [右] PASV 模式失败, 尝试 PORT  模式错误Serv-U显示有一个用户连接

那么如何关闭PASV模式呢?首先我们打开FTP客户端(我使用的是FlashFXP工具,所以以FlashFXP为例),以次找到选项 -> 参数选择 -> 代理 -> “使用被动模式”,把使用被动模式前面的钩钩去掉,确认。再次连接,FlashFXP能正常连接上,中间不在有错误出现。 去掉FlashFXP代理中的被动模式前面的钩钩

常见FTP客户端软件PORT模式和PASV模式切换方法:

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

CuteFTP: Edit -> Setting -> Connection -> Firewall -> “PASV Mode” 或 File -> Site Manager,在左边选中站点 -> Edit -> “Use PASV mode”        

FlashGet: 工具 -> 选项 -> 代理服务器 -> 直接连接 -> 编辑 -> “PASV模式”        

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

1) 在ie中如何启用或者取消PASV模式:

如果要在ie里启用或关闭PASV方式,先打开IE,在菜单里选择:工具 -> Internet选项 -> 高级,在“使用被动ftp”前面打上钩或者去掉钩,不过需要IE6.0以上才支持。

2) FTP下载工具取消被动模式的方法:

★Cute FTP 3.5英文版:FTP―>Settings―>Options―>Firewall,将“PASV mode”前复选框中的打勾去掉。

★Cute FTP3.5中文版:FTP―>设置―>选项―>防火墙,“PASV方式(A)”前复选框中的打勾去掉。

★Cute FTP4.0中文版:右击你所建立的ftp站点―>选择属性(properties)―>去掉"use PASV mod" 选择项

★Cute FTP Pro2.0中文版:编辑―>全局设置―>连接―>连接类型,“PASV/PORT”下拉选项菜单选择PORT。

★Leap FTP2.7.2:Sites―>Site Manager―>Advanced,将“Use PASV mode”前复选框中的打勾去掉。

★flashfxp: 选项->参数->代理->去掉“使用被动模式”

★flashget: 选项->参数->代理服务器->编辑->将“Use PASV mode”前复选框中的打勾去掉。

3)  其他补充

如果你用Serv-U架设FTP,那么Serv-U默认配置下两种方式都支持。

如果要关闭PASV方式,打开Serv-U,进入 Domains -> user.dns0755.net -> Settings -> Advanced -> 把“Allow passive mode data transfers”前面的钩去掉。

在 Serv-U的Local Server -> Settings -> Advanced -> PASV port range里,填入给PASV模式使用的本地端口范围,如60000-60020。请把端口范围限制在20个以内。之后,再在防火墙里打开这个范围的端口就可以了。

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

PORT和PASV的区别: 防火墙有很多种,其中有一些会禁止那些不是从内部网络IP发出的连接请求。而ftp协议是个很老的东东,没有考虑这个问题。可以这样简单描述一般ftp的工作原理:client对server发出请求:“嗨,我的xx端口正等着你传送数据呢,sever听到这个请求,就会建立一个连接,指向这个端口,并且开始传送数据。这就回到了我们的问题,如果发出请求的client在防火墙的后面,而这个防火墙禁止外部IP建立连接,那么当然server(在外部)不能建立与client的连接。所以,过了几年,人们修改了ftp协议以应付这种情况。这就是passive mode,工作原理如下:client向server发出passive命令,server回答说:“数据在xx端口等你,自己来拿。” 而这回则由client建立指向server的连接,从而取得数据。这就避免了防火墙的限制。        

为什么PORT方式比PASV方式安全?FTP传输过程中要求建立一个专门的连接来传输数据,建立连接有两个方法:一个就是FTP Server打开一个端口,Client可以去连接这个端口来建立连接。这就是PASV方式。一个就是FTP Client打开一个端口,Server去连接这个端口来建立连接。这就是PORT方式。显然,如果服务器打开了一个端口,就意味着向互联网打开了一个端口。所以PORT方式比PASV方式安全。        

概括:PASV就是被动,FTP被动等着客户来连,懒吗!所以安全性差 PORT就是主动,FTP主动同客户连接,勤奋所以安全性高哦

特别提示:如果还是连接不上请联系服务器运营商。

Serv-U搭建服务器连接出错:PORT  模式成功, 请更新你的站点配置文件

在Serv-U上将"站点→设置→高级→允许被动数据传输模式,使用IP"前的钩去掉后再连接,没再显示"PORT  模式成功, 请更新你的站点配置文件了,但还有个列表错误,网上搜索了好久始终不得解法,最后尝试着在路由器上将端口映射中的公有服务端口由22改为21,终于OK了!后记:改完端口后将"站点→设置→高级→允许被动数据传输模式,使用IP"重新钩上,再连接也没再出现"PORT  模式成功, 请更新你的站点配置文件 ^_^

相关日志:
评论: 2 | 引用: 0 | 查看次数: 104
Anna
回复回复Anna[2011-04-23 16:21:00 | | | del | 通过审核]
[未审核评论,仅管理员可见]
彩绘网
回复回复彩绘网[2011-04-17 14:29:34 | | | del | 通过审核]
[未审核评论,仅管理员可见]
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 支持Gravatar头像.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭