在 IIS 7 中使用 FTP 虚拟主机名

作者:Robert McMurray

兼容性

版本 说明
IIS 7.5 FTP 7.5 服务作为 Windows 7 和 Windows Server 2008 R2 中 IIS 7.5 的功能提供。
IIS 7.0 FTP 7.0 和 FTP 7.5 服务是 IIS 7.0 带外提供的,需要从以下 URL 下载和安装该服务:https://www.iis.net/downloads/microsoft/ftp

介绍

Microsoft 创建了一个新的 FTP 服务,该服务针对 Windows Server® 2008 完全重新编写。 这种新的 FTP 服务包含许多新功能,使 Web 作者能够比以前更好地发布内容,并为 Web 管理员提供了更多的安全性和部署选项。

新 FTP 服务的功能之一是能够配置虚拟主机名,使 Web 托管商能够在单个 IP 地址上配置多个 FTP 站点。 本文档将指导你通过两种方式创建两个具有唯一虚拟主机名的 FTP 站点:使用新的 FTP 用户界面和通过直接编辑 IIS 7.0 配置文件。 该结构包含:

注意

本演练包含使用本地用户帐户登录 FTP 站点的一系列步骤。

先决条件

必须安装以下项才能完成本文中的过程:

  1. 必须在 Windows Server 2008 上安装 IIS 7.0,并且必须安装 Internet Information Services 管理器。

  2. 新的 FTP 服务。 可以使用以下链接之一从 https://www.iis.net/ 网站下载并安装 FTP 服务:

    • FTP 7.5 for IIS 7.0 (x64)
    • FTP 7.5 for IIS 7.0 (x86)
  3. 需要为 FTP 站点创建根文件夹:

    • %SystemDrive%\inetpub\www.example.com
    • %SystemDrive%\inetpub\www.contoso.com

使用 IIS 7.0 管理器创建两个基于主机名的 FTP 站点

步骤 1:使用 FTP 站点向导创建第一个 FTP 站点

在这第一个步骤中,我们将使用唯一的虚拟主机名创建新的 FTP 站点。

  1. 打开 Internet Information Services (IIS) 管理器。 在“连接”窗格中,单击树中的“站点”节点

  2. 右键单击树中的“站点”节点,单击“添加 FTP 站点”,或者单击“操作”窗格中的“添加 FTP 站点”
    “连接”窗格中“站点”页的屏幕截图,其中“添加 F T P 站点”选项显示在下拉菜单中。

  3. 显示“添加 FTP 站点”向导时

    • 在“FTP 站点名称”框中输入 www.example.com

    • 导航到在“先决条件”部分中创建的 %SystemDrive%\inetpub\www.example.com 文件夹。

      注意

      如果选择键入内容文件夹的路径,可以在路径中使用环境变量。

    • 单击 “下一步”
      “添加 F T P 站点”对话框的屏幕截图,其中命令填充了 F T P 站点名称和物理路径的字段。

  4. 在向导的下一页:

    • 从“IP 地址”下拉菜单中选择 FTP 站点的 IP 地址,或者选择接受默认选择“所有未分配”

    • 通常你会在“端口”框中输入 FTP 站点的 TCP/IP 端口。 对于本演练,请选择接受默认端口 21。

    • 在“虚拟主机”框中输入 www.example.com

    • 确保 SSL 证书 下拉列表设置为“未选择”,并且 已选择“无 SSL ”或 “允许 SSL ”选项。

    • 单击 “下一步”

      “绑定和 S S L 设置”对话框的屏幕截图,其中“I P 地址”框的“S S L 证书”选项设置为“未选中”。

  5. 在向导的下一页:

    • 在“身份验证”设置中选择“基本”

    • 在“授权”设置中

      • 在“允许以下对象访问”下拉列表中,选择“指定的用户”
      • 在以下字段中输入本地用户的用户名;例如,可以键入“MyUser”。
      • 在“权限”选项中,选择“读取”和“写入”
    • 单击“完成”。
      显示为“身份验证”选择了“基本”的向导的图像,以及为“权限”使用“读取和写入”选项选择的“授权”的指定用户。

总结

你使用新的 FTP 服务成功新建了 FTP 站点。 回顾在此步骤中完成的项:

  • 你创建了一个名为 www.example.com 的新 FTP 站点,该站点的内容根目录位于 %SystemDrive%\inetpub\www.example.com
  • 你将 FTP 站点作为虚拟主机名绑定到了 www.example.com
  • 你启用了基本身份验证,并为本地用户帐户创建了读写访问授权规则。

步骤 2:使用 FTP 站点向导创建第二个 FTP 站点

在这第二个步骤中,我们将使用唯一的虚拟主机名创建另一个新的 FTP 站点。

  1. 打开 Internet Information Services (IIS) 管理器。 在“连接”窗格中,单击树中的“站点”节点

  2. 右键单击树中的“站点”节点,单击“添加 FTP 站点”,或者单击“操作”窗格中的“添加 FTP 站点”
    “网站”页的屏幕截图,其中从下拉菜单中选择了“添加 F T P 网站”。

  3. 显示“添加 FTP 站点”向导时

    • 在“FTP 站点名称”框中输入 www.contoso.com

    • 导航到在“先决条件”部分中创建的 %SystemDrive%\inetpub\www.contoso.com 文件夹。

      注意

      如果选择键入内容文件夹的路径,可以在路径中使用环境变量。

    • 单击 “下一步”
      “添加 F T P 站点向导”的屏幕截图,其中显示了在 F T P 站点名称框中键入的 I P 地址,以及填充物理路径字段的命令。

  4. 在向导的下一页:

    • 从“IP 地址”下拉菜单中选择 FTP 站点的 IP 地址,或者选择接受默认选择“所有未分配”
    • 通常你会在“端口”框中输入 FTP 站点的 TCP/IP 端口。 对于本演练,请选择接受默认端口 21。
    • 在“虚拟主机”框中输入 www.contoso.com
    • 确保 SSL 证书 下拉列表设置为“未选择”,并且 已选择“无 SSL ”或 “允许 SSL ”选项。
    • 单击 “下一步”
      “添加 F T P 站点向导”的屏幕截图,其中显示了“绑定”和“S S L 设置”,其中“S S L 证书”选项设置为“未选中”。
  5. 在向导的下一页:

    • 在“身份验证”设置中选择“基本”

    • 在“授权”设置中

      • 在“允许以下对象访问”下拉列表中,选择“指定的用户”
      • 在以下字段中输入本地用户的用户名;例如,可以键入“MyUser”。
      • 在“权限”选项中,选择“读取”和“写入”
    • 单击“完成”。
      向导的屏幕截图,其中显示“身份验证”设置为“基本”和“指定”用户,为授权选择了“在权限中读取和写入”。

总结

你使用新的 FTP 服务成功新建了 FTP 站点。 回顾在此步骤中完成的项:

  1. 你创建了一个名为 www.contoso.com 的新 FTP 站点,该站点的内容根目录位于 %SystemDrive%\inetpub\www.contoso.com
  2. 你将 FTP 站点作为虚拟主机名绑定到了 www.contoso.com
  3. 你启用了基本身份验证,并为本地用户帐户创建了读写访问授权规则。

步骤 3:登录到 FTP 站点

在步骤 1 和步骤 2 中,你使用唯一的虚拟主机名创建了两个 FTP 站点,并配置了安全设置,以便仅允许管理员帐户登录。 在此步骤中,你将使用管理员帐户登录。

注意

在此步骤中,你将使用本地管理员帐户登录到 FTP 站点。 在步骤 1 和 2 中创建 FTP 站点时,我们将 FTP 站点绑定到了本地环回 IP 地址。 如果未使用本地环回地址,请使用 SSL 来保护帐户设置。 如果你偏好使用单独的用户帐户而不是管理员帐户,请为该用户帐户设置相应文件夹的正确权限。

使用本地用户帐户登录到第一个 FTP 站点

  1. 在 FTP 服务器上,打开命令提示符会话。

  2. 键入以下命令连接到 FTP 服务器;例如,可以键入以下内容:

    FTP www.example.com

  3. 当系统提示你输入用户名时,请输入 www.example.com 虚拟主机名,后接竖线 (|) 字符。 例如:www.example.com|MyUser

  4. 当系统提示你输入密码时,请输入本地用户帐户密码。

  5. 现在应以本地用户帐户登录到 www.example.com FTP 站点。

使用本地用户帐户登录到第二个 FTP 站点

  1. 在 FTP 服务器上,打开命令提示符会话。

  2. 键入以下命令连接到 FTP 服务器;例如,可以键入以下内容:

    FTP www.contoso.com

  3. 当系统提示你输入用户名时,请输入 www.contoso.com 虚拟主机名,后接竖线 (|) 字符。 例如:www.contoso.com|MyUser

  4. 当系统提示你输入密码时,请输入本地用户帐户密码。

  5. 现在应以本地用户帐户登录到 www.contoso.com FTP 站点。

通过编辑 IIS 7.0 配置文件创建虚拟主机 FTP 站点

还可以通过编辑 IIS 7.0 配置文件为新 FTP 服务创建 FTP 站点。

注意

编辑 applicationHost.config 文件需要完整的管理权限。 使用以下两种方法之一:

  • 使用本地“管理员”帐户登录到计算机。

  • 如果已使用具有管理员权限但不是本地“管理员”帐户的帐户登录,请使用“作为管理员运行”选项打开记事本。

注意

必须执行上述其中一步操作,因为 Windows Vista 和 Windows Server 2008 操作系统中的用户帐户控制 (UAC) 安全组件会阻止访问 applicationHost.config 文件。 有关 UAC 的详细信息,请参阅用户帐户控制文章。

以下步骤将引导你完成从头开始创建新 FTP 站点所需的所有设置。

  1. 使用文本编辑器(例如 Windows 记事本)打开 applicationHost.config 文件,该文件默认位于 %SystemRoot%\System32\inetsrv\config 文件夹中。

  2. 找到 <sites> 部分。 使用如下所示的语法在 <sites> 中添加第一个 FTP 站点。

    注意

    如果有任何站点当前正在使用该站点标识符,你可能需要为站点 ID 选择其他数字而不是“2”。

    <site name="www.example.com" id="2">
        <application path="/">
            <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\www.example.com" />
        </application>
        <bindings>
            <binding protocol="ftp" bindingInformation="127.0.0.1:21:www.example.com" />
        </bindings>
        <ftpServer>
            <security>
                <ssl controlChannelPolicy="SslAllow" dataChannelPolicy="SslAllow" />
                <authentication>
                    <basicAuthentication enabled="true" />
                </authentication>
            </security>
        </ftpServer>
    </site>
    
  3. 使用如下所示的语法在 <sites> 中添加第二个 FTP 站点。

    注意

    如果有任何站点当前正在使用该站点标识符,你可能需要为站点 ID 选择其他数字而不是“3”。

    <site name="www.contoso.com" id="3">
        <application path="/">
            <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\www.contoso.com" />
        </application>
        <bindings>
            <binding protocol="ftp" bindingInformation="127.0.0.1:21:www.contoso.com" />
        </bindings>
        <ftpServer>
            <security>
                <ssl controlChannelPolicy="SslAllow" dataChannelPolicy="SslAllow" />
                <authentication>
                    <basicAuthentication enabled="true" />
                </authentication>
            </security>
        </ftpServer>
    </site>
    
  4. 滚动到 applicationHost.config 文件的底部,为 FTP 站点添加包含授权设置的位置部分。

    注意

    如本示例所示,FTP 站点的授权设置是按 URL 配置的,这些设置专门为本地用户帐户启用读/写权限。

    <location path="www.example.com">
        <system.ftpServer>
            <security>
                <authorization>
                    <add accessType="Allow" users="MyUser" permissions="Read, Write" />
                </authorization>
            </security>
        </system.ftpServer>
    </location>
    <location path="www.contoso.com">
        <system.ftpServer>
            <security>
                <authorization>
                    <add accessType="Allow" users="MyUser" permissions="Read, Write" />
                </authorization>
            </security>
        </system.ftpServer>
    </location>
    
  5. 保存 applicationHost.config 文件。

现在你应该能够使用 FTP 客户端登录到新建的 FTP 站点。 有关更多详细信息,请参阅本演练的步骤 3:登录到 FTP 站点部分。

总结

回顾在此步骤中完成的项:

  • 你创建了名为 www.example.comwww.contoso.com 的两个 FTP 站点,这些站点各自的内容根目录位于:

    • %SystemDrive%\inetpub\www.example.com
    • %SystemDrive%\inetpub\www.contoso.com
  • 你使用 www.example.comwww.contoso.com 作为虚拟主机名,将两个 FTP 站点绑定到了计算机端口 21 上的本地环回 IP 地址。

  • 你启用了基本身份验证,并为每个站点的本地用户帐户创建了读写访问授权规则。