FTP连接提示:数据 Socket 错误: 连接被拒

FTP服务器配置为Windows Server 2003 Enterprise Edition SP2 + Serv-U 6.4.0.2,FTP端口号为3321。本来都能正常连接使用,自从在TCP/IP筛选中加了端口限制后就出问题了:



连接信息如下:

引用内容 引用内容
WinSock 2.0 -- OpenSSL 0.9.8g 19 Oct 2007
[右] 正在连接到 192.168.203.128 -> IP=192.168.203.128 PORT=3321
[右] 已连接到 192.168.203.128
[右] 220 Serv-U FTP Server v6.4 for WinSock ready...
[右] USER User
[右] 331 User name okay, need password.
[右] PASS (隐藏)
[右] 230 User logged in, proceed.
[右] SYST
[右] 215 UNIX Type: L8
[右] FEAT
[右] 211-Extension supported
[右]  CLNT
[右]  MDTM
[右]  MDTM YYYYMMDDHHMMSS[+-TZ];filename
[右]  SIZE
[右]  SITE PSWD;EXEC;SET;INDEX;ZONE;CHMOD;MSG
[右]  REST STREAM
[右]  XCRC filename;start;end
[右]  MODE Z
[右]  MLST Type*;Size*;Create;Modify*;Win32.ea*;
[右] 211 End
[右] CLNT 3.6.0.1240
[右] 200 Noted.
[右] PWD
[右] 257 "/" is current directory.
[右] TYPE A
[右] 200 Type set to A.
[右] PASV
[右] 227 Entering Passive Mode (192,168,203,128,19,137)
[右] 正在打开数据连接 IP: 192.168.203.128 端口: 5001
[右] 数据 Socket 错误: 网络不可到达
[右] 列表错误

[右] PASV
[右] 227 Entering Passive Mode (192,168,203,128,19,138)
[右] 正在打开数据连接 IP: 192.168.203.128 端口: 5002
[右] 数据 Socket 错误: 连接被拒
[右] 列表错误
[右] PASV 模式失败, 尝试 PORT  模式。

[右] 监听端口: 3264, 等待连接。
[右] PORT 192,168,203,1,12,192
[右] 200 PORT Command successful.
[右] MLSD
[右] 150 Opening BINARY mode data connection for MLSD.
[右] 226 Transfer complete.
[右] 列表完成: 159 字节 于 0.25 秒 (0.6 KB/秒)
[右] PORT  模式成功, 请更新你的站点配置文件。

从连接信息可以看到进行了两次被动连接,分别连接服务器的5001和5002端口,但都失败了,原因也很明显了,因为在TCP/IP筛选允许的TCP端口中没有5001和5002,但是为什么是5001和5002,它们是固定的吗?是不是在TCP/IP筛选加入他们就可以了呢?实际测试了下,再次连接时,端口又变成5003和5004了,还是不行。好了,我们来看下FTP被动连接的原理吧:

引用内容 引用内容
当开启一个FTP连接时,客户端打开两个任意的非特权本地端口N和N+1(N>1024),第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交PASV命令,这样做的结果是服务器会开启一个任意的非特权端口P(P>1024),并发送PORT P命令给客户端,然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。

也就是说,5001和5002是FTP服务器端任意分配的,那么你也就无法在TCP/IP筛选加合适的端口了,没办法了吗?难道得关闭TCP/IP筛选功能?无奈之余,在查看Serv-U设置项时发现PASV端口可以设置范围的:



好了,再把这个范围的端口全加到TCP/IP筛选就好了:



说明:Windows防火墙不需多做设置,只要ServUDaemon.exe在防火墙的例外列表中就可以了。

再尝试FTP连接,可以了:

引用内容 引用内容
WinSock 2.0 -- OpenSSL 0.9.8g 19 Oct 2007
[右] 正在连接到 192.168.203.128 -> IP=192.168.203.128 PORT=3321
[右] 已连接到 192.168.203.128
[右] 220 Serv-U FTP Server v6.4 for WinSock ready...
[右] USER User
[右] 331 User name okay, need password.
[右] PASS (隐藏)
[右] 230 User logged in, proceed.
[右] SYST
[右] 215 UNIX Type: L8
[右] FEAT
[右] 211-Extension supported
[右]  CLNT
[右]  MDTM
[右]  MDTM YYYYMMDDHHMMSS[+-TZ];filename
[右]  SIZE
[右]  SITE PSWD;EXEC;SET;INDEX;ZONE;CHMOD;MSG
[右]  REST STREAM
[右]  XCRC filename;start;end
[右]  MODE Z
[右]  MLST Type*;Size*;Create;Modify*;Win32.ea*;
[右] 211 End
[右] CLNT 3.6.0.1240
[右] 200 Noted.
[右] PWD
[右] 257 "/" is current directory.
[右] TYPE A
[右] 200 Type set to A.
[右] PASV
[右] 227 Entering Passive Mode (192,168,203,128,21,126)
[右] 正在打开数据连接 IP: 192.168.203.128 端口: 5502
[右] MLSD
[右] 150 Opening BINARY mode data connection for MLSD.
[右] 226 Transfer complete.
[右] 列表完成: 452 字节 于 0.30 秒 (1.5 KB/秒)


上一篇: 申音:免费的终结
下一篇: CodeSmith Professional 4.1注册方法
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
最新日志:
评论: 0 | 引用: 0 | 查看次数: 11036
发表评论
登录后再发表评论!