最近发现VPS的FTP经常出现 “数据Socket连接错误超时”的错误,本来也没用太在意,因为过一会FTP软件会通过PORT连接,但是客户反映FTP软件经常连接不上,甚至出现了上传不了文件的错误,心想这下麻烦了,是必须解决它的时候了。

 

于是在网络上找到了一篇关于这方面设置的文章,我把我的操作导致写一些,以便给遇到类似问题的朋友参考。

设置支持被动(PASV)模式连接:

我们vpt上面装的Serv-U ,在Serv-U中设置的端口是33001-33009,确认是打开的

本地服务器--》设置--》高级--》PASV 端口范围--》写上范围,可以写上33001-33009--》FTP设置完毕

进入本地连接属性--》TCP/IP属性--》高级--》选项--》TCP/IP筛选--》属性--》如果 启动 TCP/IP 筛选(所有适配器) 是选中的(不是的话直接关闭)--》只允许里添加上 TCP端口:33001,33002,33003.....,33009

设置PASV常见的错误:

[右] 数据 Socket 错误: 连接被拒

[右] 列表错误

原因:  Serv-U上设置的PASV端口号在网卡TCP/IP上没有开解决方法参照最上面

网上提供相关介绍二:

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

  PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器从20端口向客户端的空闲端口发送连接请求,建立一条数据链路来传送数据。

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

  因为PORT方式在传送数据时,由服务器主动连接客户端,所以,如果客户端在防火墙或NAT网关后面,用PORT方式将无法与Internet 上的 FTP服务器传送文件。这种情况需要使用PASV方式。几乎所有的ftp客户端软件都支持这两种方式。特殊的典型例子是ie,ie默认是用PORT方式的。如果要在ie里启用PASV方式,请打开ie,在菜单里选择:工具 -> Internet选项 -> 高级,在“使用被动ftp”前面打上钩(需要IE6.0以上才支持)。

软件环境: Serv-U 5.x以上  Windows2000|Windows2003平台  本文以英文版为例,中文版用户自行翻译

注意事项:

一.进入serv-u管理界面,Settings--Advenced中的PASV port range设置端口范围,本人估计的设置标准如下(非官方的标准):

ftp服务平均在线人数超过100人 建议端口范围在30-40,如填写10000-10035

ftp服务平均在线人数30-60人 建议端口范围在20左右,如填写10000-10020

ftp服务平均在线人数5-20人左右 建议端口范围在5-10,如填写10000-10010

二.在Domains--(建立的域,如本站域设置为ftp.yongfa365.com)--Settings--Advenced中Allow passive mode data transfers,use ip这个前面的框选中,use ip不需要填写

三.重新启动serv-u服务,可以在命令行模式下运行netstat -an|more查看tcp的1000-100xx的端口是否已经正常开放

四.如果tcp/ip筛选,ip安全策略,网络防火墙中限制了以上pasv端口,应该先解除屏蔽

网上提供相关介绍二:

有许多朋友的 FTP 服务器是不支持 PASV 模式的,登入時要取消 PASV 模式才行,现将几种 FTP 下载工具的取消方法公布如下:

1.把 flashget 的 pasv 模式关掉的方法

        点菜单上的“工具"->“选项"->“代理服务器"-> “直接连接"->编辑->把“ pasv 模式"前的勾勾去掉,一路确定回来

2.把 Cutftp 的 pasv 模式关掉的方法

        点菜单上的“文件"->“站点管理"->在“站点管理器"窗口 ->“新建站点"->填上“域名"->“编辑"->“常规"-> 把“使用 pasv 模式"前的勾勾去掉

3.把 FlashFXP 的 pasv 模式关掉的方法

        点菜单上的“站点"->“站点管理器"->站点管理器窗口-> “新建站点"->填上“域名"->“选项"->把“使用被动模式"前的勾勾去掉->“应用" 即可

4.把 NetAnts 的 pasv 模式关掉的方法

        点菜单上的"选项"->"参数设置"->"代理"->“直接连接"->编辑->把“ pasv 模式"前的勾勾去掉,一路确定回来

相信大家都知道FTP是什么啦,但我相还有很多人不知道什么是PASV和PORT,或者你知道但不知道他们到底是什么

下面介绍一下这两种模式吧:

PORT其实是Standard模式的另一个名字,又称为Active模式?中文意思是“主动模式

PASV也就是Passive的简写中文就是“被动模式

两者之间有什么不同:

不同之处是由于PORT这个方式需要在接上TCP 21端口后,服务器通过自己的TCP 20来发出数据?并且需要建立一个新的连接来传送档案?而PORT的命令包含一些客户端没用的资料,所以有了PASv的出现

而PASV模式就当然拥有PORT模式的优点及去掉一些PORT的缺点,PASV运行方式就是当服务器接收到PASV命令时,就会自动从端口1024到5000中随机选择,而且还会使用同一个端口来传送数据,不用建立新的连接

PASV方式设置:

          所有FTP服务器软件都支持PORT方式大部分FTP服务器软件PORT方式和PASV方式都支持,Serv-U默认配置下两种方式都支持,如果要关闭 PASV方式,请打开Serv-U,进入 Domains -> user.dns0755.net -> Settings -> Advanced -> 把“Allow passive mode data transfers"前面的钩去掉

          使用内网标准版的用户,不能取消PASV方式

PASV方式与防火墙的问题:

          公网和内网TrueHost用户,如果安装了防火墙,需要在防火墙上打开一些端口给FTP的PASV模式使用,否则使用PASV模式无法登录。在 Serv-U的Local Server -> Settings -> Advanced -> PASV port range里,填入给PASV模式使用的本地端口范围,如60000-60020,如果使用Win 9x/Me,请把端口范围限制在5个以内,如果使用Win NT/2000/XP/2003,请把端口范围限制在20个以内?之后,再在防火墙里打开这个范围的端口就可以了

          使用内网标准版的用户不需要设置此选项

          防火墙的设置方法

          注:Win XP自带的防火墙会自动为FTP打开PASV端口,如果使用Win XP防火墙就不需要设置

公网+端口映射的注意事项:

        通过ADSL共享器/路由器或其他网关上网,采用网关端口映射而使用公网动态域名的用户,建立FTP服务器,用PORT方式访问是没问题的,要用PASV方式访问,需要做如下设置:

        1、在Domains -> user.dns0755.net里选择“Enable dynamic DNS"?之后,右边会多出一个选项“Dynamic DNS",点击“Dynamic DNS",在“IP name"里输入域名“user.dns0755.net",“IP address"留空不设按,“F5"即可得到IP地址,点击“Apply"保存设置

        2、参考上面的“PASV方式与防火墙的问题"中的说明,设置PASV端口范围,例如 60000 - 60020

        3、在网关(ADSL共享器/路由器)上为PASV端口设置映射?例如把网关的 60000 - 60020 端口映射到本机的 60000 - 60020 端口