首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >FTP客户端Filezilla和Ftpuse工作,但Windows资源管理器无法启动PASV模式

FTP客户端Filezilla和Ftpuse工作,但Windows资源管理器无法启动PASV模式
EN

Stack Overflow用户
提问于 2013-08-28 02:46:38
回答 1查看 3.8K关注 0票数 2

我使用.NET 4.0创建了一个定制的FTP服务器。我在同一台Windows 7机器上运行客户端和服务器,我的防火墙被完全禁用。我可以使用FileZilla和FtpUse连接到它,建立PASV模式,并浏览文件夹的内容。当试图通过Windows连接时,问题就出现了。我可以成功登录,但当资源管理器发送PASV命令(请参阅下面的client/server exchange )时,Explorer会弹出一个消息框,上面写着"FTP文件夹错误“,”在FTP服务器上打开该文件夹发生了错误。请确保您有访问该文件夹的权限“。下面的详细信息是它从服务器收到的最后两个响应。我找到了这个(http://support.microsoft.com/kb/2754804/en-us)更新并安装了它,但是它没有帮助。有人知道这会是什么吗?在从PASV命令返回响应之前,我打开TCP侦听器,所以我不认为这是时间问题。

代码语言:javascript
运行
复制
<< 220 ***********.
>> USER Domain\******
<< 331 Password required.
>> PASS *******
<< 230 Domain\****** logged in.
>> opts utf8 on
<< 200 OPTS UTF8 command successful - UTF8 encoding now on.
>> syst
<< 215 Windows_NT.
>> site help
<< 200
<< 200 End of help.
>> PWD
<< 257 "/".
>> TYPE A
<< 200 Type set to A.
>> PASV
<< 227 Entering Passive Mode (10,0,0,4,7,100)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-06 21:10:42

最初,我认为这个问题可能与

Windows explorer hangs up FTP connection after PASV command

但我试着提前打开被动端口,但没有帮助。相反,问题与Windows Explorer的严格性有关。作为227响应的一部分提供的IP地址必须与客户端最初连接的FTP站点的地址相同。换句话说,如果客户端使用

代码语言:javascript
运行
复制
ftp://localhost 

(解析为127.0.0.1),PASV响应提供的IP地址必须为127.0.0.1 -否则Windows Explorer将出错。这并不是说不能用IPAddress.Any打开被动端口-它可以:

代码语言:javascript
运行
复制
var listener = new TcpListener(IPAddress.Any, 0)

但是,与结果一起返回的地址仍然必须是127.0.0.1 (使用上面的示例)。如果客户机最初连接到机器的IP,例如10.x.x.x,那么227响应返回的IP地址也必须是10.x。

FileZilla一定是有点宽容了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18478594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档