Microsoft FTP 7.5 中的更改

本文介绍 Microsoft FTP 7.5 中引入的一些更改。

原始产品版本: Internet Information Services 8.0、8.5
原始 KB 编号: 2505047

某些 NLST 命令行选项不起作用

在 FTP 7.5 中,FTP 客户端只能将 -C、、-1-a-l-F、 或-A命令行选项与 NLST 命令一起使用。 例如, -r) 反向排序方向的选项 (, -t (按上次写入时间排序的选项) 不再有效。 由于 RFC 中未记录这些命令行选项,因此 Microsoft 可能会更改 FTP 功能版本中的实现。

FTP 数据连接在后台建立并异步断开连接

FTP 数据连接的建立和断开连接是在控制连接的响应后台处理的。 FTP 7.5 启动三向握手以建立数据连接,然后它返回 成功的 200 PORT 命令 作为对控制连接的命令的响应 PORT226 传输完成响应作为 和 RETR 命令的响应LIST返回到控制连接之前,握手以断开连接数据连接完成。

FTP 7.5 不支持 IisFtp.vbs

从 FTP 7.5 开始, IisFtp.vbs 脚本不再受支持,并且不包含在 FTP 7.5 安装包中。 因此,某些使用 IisFtp.vbs 的功能需要从 FTP 7.5 开始采取不同的操作。 例如, IIsFtp.vbs /setadprop Internet Information Services (IIS) 6.0 中可用于在 Active Directory 隔离模式下创建 FTP 站点的命令不能在 FTP 7.5 中使用。 相反,使用 ADSI 编辑器 将 和 msIIS-FTPDir 属性设置为msIIS-FTPRoot在 Active Directory 隔离模式下指向主目录。

ADSI 编辑器 是轻型目录访问协议 (LDAP) 编辑器,可用于管理 Active Directory 中的对象和属性。 默认情况下,此功能安装在 Windows Server 2008 域控制器上,必须在成员服务器上手动安装。

在 Active Directory 模式下配置隔离用户有三个main步骤:

  • 在 IIS 中,创建并配置要隔离的 FTP 站点。
  • 配置文件服务器。
  • 配置 Active Directory。

若要创建和配置要隔离的 FTP 站点,请参阅 FTP Active Directory 用户隔离

配置文件服务器时,必须为允许连接到 FTP 服务的所有用户(包括配置为模拟匿名用户的用户)创建共享和用户目录。 在完成此步骤之前,请考虑预期磁盘空间使用情况、存储管理和网络流量等因素。

若要配置 Active Directory,可以使用 ADSI 编辑器而不是 IisFtp.vbs。 若要在 Active Directory 隔离模式下配置 FTP 7.5 站点,请执行以下步骤:

  1. 选择“开始”,选择“运行”,然后输入 adsiedit.msc 以运行 ADSI 编辑器。
  2. 如有必要,请连接到 FTP 服务器的域。 默认情况下,它连接到域控制器所属的域。
  3. 在控制台窗格中,展开 FTP 服务器的域,展开 %域名%,然后选择 “CN=用户”。
  4. 在详细信息窗格中,右键单击“ CN=%User%”,然后选择“ 属性”。
  5. “属性编辑器”选项卡上,选择“msIIS-FTPRoot”或“msIIS-FTPDir”,然后选择“编辑”。
  6. 编辑,然后选择“ 确定”。

当 FTP 客户端在被动模式下发送需要数据连接的命令时,FTP 7.5 返回 125 或 150 响应

在 IIS 的早期版本中,FTP 服务返回已打开的 125 数据连接;当客户端和服务器通过被动模式连接进行通信时,STOUFTP 客户端发送的 、 和 STOR 命令的传输开始响应APPE。 此外,FTP 返回 150 文件状态正常;即将打开数据连接。 通过活动模式连接响应 APPESTOUSTOR 命令。

在 FTP 7.5 及更高版本中,响应消息不取决于数据连接请求是处于被动模式还是主动模式。 相反,如果已建立数据连接,则 FTP 7.5 响应且 125 个数据连接已打开;传输开始。 如果尚未建立数据连接,则 FTP 响应 150 文件状态正常;即将打开数据连接

注意

在断开以前 FTP 请求的数据连接之前,FTP 7.5 不会开始为 PASVEPSV 命令建立数据连接。

如果 FTP 客户端不使用 CRLF 作为行尾,则 FTP 7.5 返回 451 错误响应

在 IIS 的早期版本中,FTP 服务接受 CRLFLF 作为行尾标记。 从 FTP 7.5 开始,不再支持使用 LF 作为行尾标记。 根据 RFC 959,FTP 应遵循 Telnet 协议的规范,其中 CRLF 是唯一有效的行尾标记。 如果 FTP 客户端尝试使用 LF 结束行,FTP 7.5 将返回以下错误消息:

451 参数不正确。

如果 FTP 客户端尝试使用低于 1024 的端口进行数据连接,则 FTP 7.5 会重置数据连接

在早期版本的 IIS 中,FTP 客户端可以选择在被动模式和主动模式 FTP 通信中使用低于 1024 的端口进行数据连接。 从 FTP 7.5 开始,当 FTP 客户端尝试使用低于 1024 的端口进行数据连接时,FTP 7.5 将重置基础 TCP 连接。 例如,如果 FTP 客户端尝试使用 STOR 命令执行文件被动模式上传,并尝试使用低于 1024 的端口进行数据连接,则上传将失败,并且类似于以下内容的条目将写入 FTP 日志:

2012-01-15 02:08:16 123.456.789.0 user01 123.1.1.1 40063 DataChannelOpened - - 0 0
2012-01-15 02:08:16 123.456.789.0 user01 123.1.1.1 40063 DataChannelClosed - - 1236 38
2012-01-15 02:08:16 123.456.789.0 user01 123.1.1.1 21 STOR file.txt 425 1236 0

注意

对于使用数据端口小于 1024 的活动模式 FTP 上传,Win32 状态将为 87 而不是 1236。

出现此行为的原因是,在 FTP 7.5 中,0-1023 范围内的端口现在保留给系统进程或特权用户执行的程序。

用于打开文件的 FTP RETR

FTP 7.5 RETR(GET) 对于已由其他进程打开的文件, (不是 FTP 服务 (FTPSVC) ) 将失败 ERROR_SHARING_VIOLATION

更多信息

有关 FTP 7.5 的详细信息,请参阅以下文章: