1

我正在尝试使用被动 ftp 对文件进行 ftp,但在put调用命令时出现超时(12002)。

我可以将被动 ftp 与其他 ftp 站点一起使用,但不能使用这个新站点。

我已经在同一台服务器上使用三种不同的方式进行了尝试:

  • 被动模式下的 FileZilla 客户端 - 这有效
  • 被动模式下的 WinINet 库 - 调用 PutFile 时出现超时
  • IE 6 处于被动模式 - 尝试列出目录时出现超时

这是在 Windows 2000 服务器上。

我假设我的防火墙设置正确,因为 FileZilla 工作。

谁能帮我弄清楚发生了什么?

4

1 回答 1

1

在被动模式下,FTP 服务器在其末端打开一个端口,并告诉 FTP 客户端它需要连接的 IP/端口。在客户端,它创建一个新的套接字,将其绑定到本地 IP/端口(通常是随机 IP/端口,除非另有配置),然后连接到服务器指定的 IP/端口。如果没有实际看到来自网络数据包嗅探器(如 Wireshark)的跟踪日志,那么我猜测客户端上的防火墙/路由器阻止了出站连接,或者服务器端的防火墙/路由器阻止了入站连接。FileZilla 通过 OK 的事实可能意味着连接两端的 IP/端口对恰好匹配所有防火墙/路由器规则以接受两端的连接,而 WinInet/IE IP/端口对中的某些内容是反而被拒绝。这有点不寻常,因为被动模式往往比主动模式更适合防火墙/路由器。您是否尝试过使用 Windows 的命令行 ftp.exe 实用程序来查看它是否有效?顺便说一句,IE 的所有连接都使用 WinInet。

于 2009-11-06T00:42:17.557 回答