欢迎光临

木子屋

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

作者: dnawo

日期: 2011-01-11 11:45 AM

分类: 服务器

内容: 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/秒)

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.547 ms

返回

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

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.547 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.563 ms

返回