45IT.COM- 电脑学习从此开始!
DIY硬件教程攒机经验装机配置
设计Photoshop网页设计特效
系统注册表DOS系统命令其它
存储主板显卡外设键鼠内存
维修显卡CPU内存打印机
WinXPVistaWin7unix/linux
CPU光驱电源/散热显示器其它
修技主板硬盘键鼠显示器光驱
办公ExcelWordPowerPointWPS
编程数据库CSS脚本PHP
网络局域网QQ服务器
软件网络系统图像安全
页面导航: 首页 > 电脑学院 > 服务器技术 >

一例IE访问IIS FTP超时故障的分析

电脑软硬件应用网 45IT.COM 时间:2007-09-28 11:26 作者:ifly
  今天在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模式
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: baidushare.htm
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐知识