首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

实战经验:FTP服务器搭建出现被动模式问题

问题

最近需要在IIS上搭建一个FTP服务器。碰到了这样的问题:按照网上基本的搭建步骤,完成搭建过程后,客户在资源管理器中访问ftp://x.x.x.x/时,出现了如下的错误:

分析过程

从提示上来看,站点访问没有出现连接服务器失败的错误,说明底层TCP连接这块是没有问题的。另外,错误中提示让我们检查访问相关文件夹的权限。

好,满怀高兴的去给FTP根目录设置了一个Everyone可读可写的权限,重启IIS服务。再次测试,发现错误依旧。

解决方法

经过几天的摸爬滚打,终于在一篇文章中找到了解决方法:

没想到这个问题和IE的设置还有关系。我们需要在IE的高级选项中勾选:使用被动TFP(用于防火墙和DSL调制解调器的兼容)。如下图所示:

两种模式

主动模式:

在主动模式下,客户端首先选择一个大于1023的端口A,使用此端口发起对FTP服务器(默认使用21号端口)的连接请求,此21号端口为服务器的命令端口。随后客户端自身还会对A+1端口启动监听。当需要传输数据时,客户端将使用"PORT A+1"指令告诉服务器:请连接至我开放的A+1端口进行数据传输。接着,服务器会使用其20号端口(数据端口)连接到客户端的A+1端口(数据端口)进行数据传输。

被动模式:

在被动模式下,客户端也会使用到两个本地端口,A 和 A+1。客户端使用使用A端口连接至服务器的21号命令端口,需要数据传输时,客户端将发送PASV命令,服务器收到此命令后,将会开启一个任意的数据端口(通常是大于1023的),并发送PORT命令给客户端。客户端收到数据端口后,使用A+1端口连接服务器的数据端口,来进行数据传输。

问题原因

IIS上客户端的防火墙未进行正确配置,导致在主动模式下FTP连接失败。开启IE的被动模式后,问题解决。

总结

主动模式数据传输连接从服务器端向客户端发起;被动模式则是客户端向服务器端发起连接。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190517A0NI7K00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券