当前位置: 电脑软硬件应用网 > 电脑学院 > 服务器技术 > 正文 |
|
|||
一例IE访问IIS FTP超时故障的分析 | |||
2007-9-28 11:26:09 文/ifly 出处:想飞 iflycn | |||
今天在Windows 2003 Server上安装IIS的FTP,服务器开了Windows防火墙,添加了例外:允许外界连接21端口。一切设置完毕,使用IE连接却始终无法打开,状态栏显示“正在获取文件夹的内容”,最后提示“操作超时”。
在命令提示符下登陆一切正常,可以dir目录内容,get文件等。 重新调整了FTP设置、用户权限、NTFS权限,问题依旧。 用Cuteftp软件连接,发现了问题所在,使用PASV模式无法传输数据改用PORT模式一切正常。 上网查询了关于FTP两种连接模式的资料: FTP的连接模式有两种,PORT和PASV。PORT模式是一个主动模式,PASV是被动模式,这里都是相对于服务器而言的。 PORT模式建立数据传输通道是由服务器端发起的,服务器使用20端口连接客户端的某一个大于1024的端口; 在PASV模式中,数据传输通道的建立是由FTP客户端发起的,他使用一个大于1024的端口连接服务器的1024以上的某一个端口。 如果从C/S模型这个角度来说,PORT对于服务器来说是OUTBOUND,而PASV模式对于服务器是INBOUND,这一点请特别注意,尤其是在使用防火墙的企业里,比如使用微软的ISA Server 2000发布一个FTP服务器,这一点非常关键,如果设置错了,那么客户将无法连接。 [参考] http://www.microsoft.com/china/community/Column/70.mspx 至此清楚了故障的原因:服务器打开了Windows防火墙,ifly通过添加端口允许外界访问服务器的21端口,因此FTP的控制信息可以正常传输。使用CMD登陆时,由于采用的是PORT模式,服务器使用20端口向客户端发起连接,这个outbound过程会被Windows防火墙放行,因此可以建立数据通道。而使用IE登陆时,默认采用的是PASV模式,客户端试图连接服务器1024以上的某个端口,这个对于服务器的inbound过程被防火墙过滤掉了,因此无法建立数据通道,出现超时错误。 解决这个问题可以从服务器或客户端两方面着手: 对于服务器可以打开需要的端口,但PASV模式连接的端口号不定,不能通过“添加端口”的方式,可以照(图1)那样通过“添加程序”的方式在防火墙上打洞。 对于客户机,指定IE只使用PORT模式也可以解决问题。见图2,IE工具菜单-> Internet选项->高级->去掉“使用被动FTP”前面的勾即可。 图1、Windows防火墙添加程序例外
图2、IE设置不使用PASV模式
|
|||
关于45IT | About 45IT | 联系方式 | 版权声明 | 网站导航 | |
Copyright © 2003-2011 45IT. All Rights Reserved 浙ICP备09049068号 |