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 命令 作为对控制连接的命令的响应 PORT
。 226 传输完成响应作为 和 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 站点,请执行以下步骤:
- 选择“开始”,选择“运行”,然后输入 adsiedit.msc 以运行 ADSI 编辑器。
- 如有必要,请连接到 FTP 服务器的域。 默认情况下,它连接到域控制器所属的域。
- 在控制台窗格中,展开 FTP 服务器的域,展开 %域名%,然后选择 “CN=用户”。
- 在详细信息窗格中,右键单击“ CN=%User%”,然后选择“ 属性”。
- 在“属性编辑器”选项卡上,选择“msIIS-FTPRoot”或“msIIS-FTPDir”,然后选择“编辑”。
- 编辑,然后选择“ 确定”。
当 FTP 客户端在被动模式下发送需要数据连接的命令时,FTP 7.5 返回 125 或 150 响应
在 IIS 的早期版本中,FTP 服务返回已打开的 125 数据连接;当客户端和服务器通过被动模式连接进行通信时,STOU
FTP 客户端发送的 、 和 STOR
命令的传输开始响应APPE
。 此外,FTP 返回 150 文件状态正常;即将打开数据连接。 通过活动模式连接响应 APPE
、 STOU
和 STOR
命令。
在 FTP 7.5 及更高版本中,响应消息不取决于数据连接请求是处于被动模式还是主动模式。 相反,如果已建立数据连接,则 FTP 7.5 响应且 125 个数据连接已打开;传输开始。 如果尚未建立数据连接,则 FTP 响应 150 文件状态正常;即将打开数据连接。
注意
在断开以前 FTP 请求的数据连接之前,FTP 7.5 不会开始为 PASV
或 EPSV
命令建立数据连接。
如果 FTP 客户端不使用 CRLF 作为行尾,则 FTP 7.5 返回 451 错误响应
在 IIS 的早期版本中,FTP 服务接受 CRLF
和 LF
作为行尾标记。 从 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 的详细信息,请参阅以下文章:
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈