使用 VWD 部署 FTP 和发布的指南
IIS 的 FTP 服务是 Windows Web 平台的关键组件。 它为 Windows 环境中的 FTP 提供安全可靠的解决方案。 共享托管环境管理员可以使用 FTP for IIS 来支持其客户上传和同步内容。 Microsoft 和 FTP 的新增功能一文介绍了新的 FTP 功能。 以下是一些亮点:
与 IIS 集成:
- 基于 .NET XML 的 *.config 格式的新配置存储
- 新的管理工具
安全性和对新 Internet 标准的支持:
- FTP over SSL
- 用于身份验证的非 Windows 帐户
- UTF8 和 IPv6
共享托管改进:
- 通过将 FTP 绑定添加到现有网站来托管来自同一站点的 FTP 和 Web 内容
- 支持虚拟主机名,使用户能够在同一 IP 地址上托管多个 FTP 站点
- 通过每用户虚拟目录改进了用户隔离
改进了日志记录和可支持性功能:
- 增强的 FTP 日志记录包括所有 FTP 相关流量、FTP 会话的独特跟踪、FTP 子状态以及 FTP 日志中的其他详细信息字段
- 本地登录到 FTP 服务器时的详细错误响应
- 使用 Windows 事件跟踪 (ETW) 时的详细信息,提供用于故障排除的附加信息
以下视频概述并演示了 FTP 7.0 中的多项功能。
部署 FTP
FTP 是共享托管配置中的前端服务器之一。
此图突出显示了共享托管环境中 FTP 部署的几个重要特征:
- FTP 服务可以共享用于远程管理(Web 管理 - WMSVC)和 MS Deploy 服务的同一台计算机。
- FTP 计算机是 Web 场服务器使用的共享配置的一部分,这意味着,安装在该计算机上的组件也应该位于 Web 场服务器上。 但是,由于 Web 场不用于处理 FTP 请求,因此可以停止 FTP、Web 管理 (WMSVC) 和 MS Deploy 服务。
- FTP 计算机不适合托管 Web 应用程序。
- 面向 Internet 的防火墙路由器执行 FTP 流量到 FTP 服务器的端口转发。
部署配置
FTP for IIS 服务器具有多项功能,使其成为共享托管方案的理想选择。 以下指导利用新的 FTP 用户隔离功能。 此功能允许:
- 管理员将用户限制为只能访问针对用户定义的物理目录或虚拟目录。 这意味着实现单个 FTP 站点;该站点将为每个用户名包含一个特定的物理目录或虚拟目录。
- 当用户明确提出要求时,管理员可以启用 SSL 并为所有连接使用单个证书。
- 用户可以将 FTP 站点视为自己的站点。 当他们登录到 FTP 服务器时,他们将被限制在其特定目录中,并且无法在目录树中向上导航。
步骤
选择 FTP 计算机并安装新的 FTP for IIS 服务。 请按照安装 FTP 和对其进行故障排除中的说明操作。
创建用于 FTP 站点的根文件夹,例如:
%*SystemDrive*%\inetpub\ftproot
。(可选)如果存在 FTP 高可用性和/或负载均衡要求,Microsoft 将提供网络负载均衡或故障转移群集等解决方案,在此情况下,DNS 轮循机制可能就足够了。
创建允许 SSL 连接和基本身份验证的站点。 按照创建支持 SSL 的站点部分中所述的步骤操作。
启用用户隔离功能。 按照为所有目录配置用户隔离部分中所述的步骤操作。
按照下面相应部分中的说明配置 FTP 防火墙设置。
停止 Windows 进程激活服务 (WAS):
- 在命令提示符下,键入 services.msc,这会显示“服务”控制台。
- 双击“Windows 进程激活服务”。
- 在“Windows 进程激活服务属性”对话框中,确保该服务的“启动类型”设置为“已禁用”。 单击“停止”,然后单击“确定”。
- 在命令提示符下,键入 services.msc,这会显示“服务”控制台。
创建支持 SSL 的站点
在本部分,你将创建一个可以使用任何用户帐户打开的新 FTP 站点。
转到 IIS 管理器。 在“连接”窗格中,单击树中的“站点”节点。
右键单击树中的“站点”节点,单击“添加 FTP 站点”,或者单击“操作”窗格中的“添加 FTP 站点”。
当“添加 FTP 站点向导”出现时:
在“FTP 站点名称”文本框中输入“我的新 FTP 站点”,然后导航到为 FTP 站点创建的根文件夹(例如:
%*SystemDrive*%\inetpub\ftproot
)。注意
如果选择键入内容文件夹的路径,可以在路径中使用环境变量。
单击 “下一步” 。
在向导的下一页:
- 在“IP 地址”文本框中选择 FTP 站点的 IP 地址,或者选择接受默认选择“所有未分配”。此示例使用本地环回 IP“127.0.0.1”。
- 在“端口”文本框中输入 FTP 站点的 TCP/IP 端口。 此示例使用默认端口“21”。
- 确保“虚拟主机”文本框为空。 请勿使用主机名。
- 确保“证书”下拉列表设置为要使用的相应证书。 此示例使用名为“My FTP Certificate”的自签名证书。有关说明,请参阅创建自签名 SSL 证书。
- 确保选中“允许 SSL”选项。
- 单击 “下一步” 。
在向导的下一页:
对于“身份验证”设置,选择“基本”。
对于“授权”设置:
- 在“允许以下对象访问”下拉列表中,选择“所有用户”。
- 对于“权限”选项,选择“读取”和“写入”。
完成这些项,然后单击“完成”。
总结
现已使用新的 FTP 服务新建了基于 SSL 的 FTP 站点。 回顾在此过程中完成的项:
- 你新建了名为“我的新 FTP 站点”的新 FTP 站点,该站点的内容根目录位于
%*SystemDrive*%\inetpub\ftproot
。 - 你将 FTP 站点绑定到了计算机的 IP 地址,端口为 21。
- 你选择了允许为 FTP 站点使用安全套接字层 (SSL),并选择了你的证书。
- 你启用了基本身份验证,并为所有用户帐户创建了授权规则,使其能够进行读取和写入访问。
要直接编辑 XML 配置文件,请参阅通过编辑 IIS 配置文件添加基于 SSL 的 FTP 发布。
为所有目录配置用户隔离
隔离所有目录的用户时,所有 FTP 用户会话将限制为与 FTP 用户帐户同名的物理或虚拟目录。 此外,将忽略创建的所有全局虚拟目录。 在此步骤中,你将为所有目录配置用户隔离。
- 在
%*SystemDrive*%\inetpub\ftproot\LocalUser\
处创建一个文件夹。 此文件夹将包含所有本地用户帐户目录。 可以在文件共享服务器 (NAS) 上创建此文件夹。 预配用户帐户时,还必须分配对用户内容文件夹的读取和写入访问权限。 - 在 IIS 管理器中,单击刚刚创建的 FTP 站点的节点。 这会显示所有 FTP 功能的图标。
- 双击“FTP 用户隔离”图标打开 FTP 用户隔离功能。
- 显示“FTP 用户隔离”功能页后,选择“用户名目录(禁用全局虚拟目录)”,然后单击“操作”窗格中的“应用”。
总结
回顾在此过程中完成的项:你使用“用户名目录(禁用全局虚拟目录)”选项配置了 FTP 用户隔离。 使用此用户隔离模式时,所有 FTP 用户会话将限制为与 FTP 用户帐户同名的虚拟或物理目录,并且将忽略创建的所有全局虚拟目录。
若要为每个用户创建主目录,首先需要在 FTP 服务器的根文件夹下创建一个虚拟或物理目录,该目录与域同名,或者为本地用户帐户命名为 LocalUser。 接下来,需要为每个要访问 FTP 站点的用户帐户创建一个虚拟或物理目录。 下表列出了 FTP 服务随附的身份验证提供程序的主目录语法:
用户帐户类型 | 物理主目录语法 |
---|---|
匿名用户 | %FtpRoot%\LocalUser\Public |
本地 Windows 用户帐户(需要基本身份验证) | %FtpRoot%\LocalUser\%UserName% |
Windows 域帐户(需要基本身份验证) | %FtpRoot%\%UserDomain%\%UserName% |
IIS 管理器或 ASP.NET 自定义身份验证用户帐户 | %FtpRoot%\LocalUser\%UserName% |
注意
在上表中,%FtpRoot% 是 FTP 站点的根目录;例如 C:\Inetpub\Ftproot
。
全局虚拟目录将被忽略;任何 FTP 用户都无法访问在 FTP 站点根级别配置的虚拟目录。 必须在用户的物理或虚拟主目录路径下显式定义所有虚拟目录。
配置 FTP 防火墙设置
为 FTP 服务配置被动端口范围
在本部分,你将配置与 FTP 服务建立的被动连接的服务器级端口范围。 请使用以下步骤:
转到 IIS 管理器。 在“连接”窗格中,单击树中的服务器级节点。
在功能列表中双击“FTP 防火墙支持”图标。
为“数据通道端口范围”输入值范围。
输入 FTP 服务的端口范围后,单击“操作”窗格中的“应用”以保存配置设置。
注意
端口的有效范围为 1025-65535。 (端口 1-1024 保留供系统服务使用。)
可以输入特殊端口范围“0-0”以将 FTP 服务器配置为使用 Windows TCP/IP 动态端口范围。
有关更多信息,请参阅以下 Microsoft 知识库文章:
- 174904 - 有关 TCP/IP 端口分配的信息 (
https://support.microsoft.com/kb/174904/ "Information about TCP/IP port assignments"
) - 929851 - Windows Vista 和 Windows Server 2008 中 TCP/IP 的默认动态端口范围已更改
- 174904 - 有关 TCP/IP 端口分配的信息 (
需要将此端口范围添加到防火墙服务器允许的设置中。
在“防火墙的外部 IP 地址”设置中,输入防火墙服务器面向外部的 IPv4 地址。
输入防火墙服务器的外部 IPv4 地址后,单击“操作”窗格中的“应用”以保存配置设置。
总结
回顾在此过程中完成的项:
- 你为 FTP 服务配置了被动端口范围。
- 你为特定 FTP 站点配置了外部 IPv4 地址。
有关如何配置 Windows Server 2008 防火墙的信息,请参阅(可选)步骤 3:配置 Windows 防火墙设置。 另请参阅有关使用防火墙的详细信息。
FTP 服务器名称示例
当托管商为其客户预配帐户时,通常会使用包含的 FTP 服务。 上面提供的说明将为客户启用 FTP for IIS 服务,但 FTP 服务器名称(如果仅基于托管公司名称)可能如下所示:
ftp.hostingcompany.com。此类名称对于所有用户而言可能足够清楚;当客户使用它连接到 FTP 目录时,他们将进入自己的目录,并且只能看到自己的文件夹。 但是,FTP 服务器名称可能不如基于保留域的 FTP 服务器名称对客户那样有吸引力,例如:
- ftp.customerdomain.com
- customerdomain.com
如果客户将其 FTP 服务器名称与其保留域名相关联,FTP 服务体验将更加个性化并有吸引力。 从功能上讲,它与以上示例相同,但此选项简化了客户的域命名。 若要为每个客户设置自定义 FTP 服务器名称,需要为客户域创建适当的 DNS 记录。 这需要执行额外的预配步骤。如果为每个客户提供自定义 FTP 服务器名称,还可能需要提供备用服务器名称,以防止更新域名时 FTP 服务中断。 与自定义名称一起提供的替代名称示例如下:ftp.username.hostingcompany.com。在这种情况下,客户将收到两个服务器名称,并且能够使用任一名称连接到同一目录;例如:
- ftp.customerdomain.com(或 customerdomain.com)
- ftp.username.hostingcompany.com
从 Visual Web Developer 进行连接
到目前为止,本文重点介绍了如何在共享托管环境中部署 FTP。 本部分介绍客户如何利用 Visual Web Developer 2008 (VWD) 通过托管商提供的 FTP 服务来发布其 Web 应用程序。 以下示例假定:
- 托管公司已向名为“ftpuser1”的用户预配了一个帐户。
- 托管公司已创建相应的虚拟文件夹“ftproot\LocalUser*ftpuser1*”。
若要使用 VWD 发布 Web 应用程序内容,ftpuser1 需执行以下步骤:
Ftpuser1 在 Visual Web Developer 2008 (VWD) 中打开名为“WebSite1”的网站。
Ftpuser1 从“网站”菜单中选择“复制网站”。
Ftpuser1 单击“连接”。
Ftpuser1 输入以下值:
- 托管公司提供的 FTP 服务器名称。 在以下示例中,环回 IP 地址为 127.0.0.1。
- 端口。 在以下示例中,默认值为端口 21。
- “被动模式”选项。
- “基本身份验证”选项。 Ftpuser1 取消选择“匿名登录”。
- 用户名:ftpuser1。
- 密码。
然后,Ftpuser1 单击“打开”。
Ftpuser1 的文件夹显示在“远程网站”窗格中。 在以下示例中,该窗格是空的,因为 ftpuser1 是首次发布网站。
Ftpuser1 通过选择所有文件和文件夹,然后单击“同步”,在“源网站”窗格中发布所有内容项:
- Ftpuser1 单击左侧窗格。
- Ftpuser1 按 Ctrl+A 以选择所有文件。
- Ftpuser1 单击“同步”(位于两个窗格之间,从顶部算起的第三个按钮)。
文件和文件夹将上传到 FTP 服务器,并存储在用户的虚拟目录 ftpuser1 中。 (由于用户隔离限制,用户将不知道同一服务器上其他用户的内容。)
结束语
本指南提供在共享托管环境中安装和配置 FTP for IIS 服务所需的信息。 其中还介绍了客户如何利用 Visual Web Developer 将其内容发布到 FTP 站点目录。