在 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 为 Windows Server® 2008 及更高版本更新了 FTP 服务。 此更新的 FTP 服务包含许多新功能,使 Web 作者能够比以前更好地发布内容,并提供 Web 管理员更多的安全性和部署选项。

本文档指导你使用新的 FTP 用户界面通过直接编辑 IIS 配置文件从头开始创建 FTP 站点。 该结构包含:

注意

本演练包含使用本地管理员帐户登录 FTP 站点的一系列步骤。 这些步骤只能在服务器本身上使用环回地址或通过 SSL 从远程服务器执行。 如果你偏爱使用单独的用户帐户而非管理员帐户,则在必要时需要创建合适的文件夹并为用户帐户设置正确的权限。

先决条件

必须准备好以下各项才能完成本文中的过程:

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

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

    • FTP 7.5 for IIS 7 (x64)
    • FTP 7.5 for IIS 7 (x86)
  3. 必须创建用于 FTP 发布的根文件夹。

使用 IIS 管理器创建新的 FTP 站点

新的 FTP 服务提供的向导可以引导你完成从头开始创建新 FTP 站点所需的所有步骤,让你可以轻松创建新的 FTP 站点。

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

在这第一个步骤中,你将创建一个匿名用户可以打开的新 FTP 站点。

注意

本演练中列出的设置将 %SYSTEMDRIVE%\inetpub\ftproot 指定为 FTP 站点的路径。 你无需使用此路径;但如果你更改站点的位置,则必须更改整个演练中使用的与站点相关的路径。

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

  2. 如下图所示,右键单击树中的“站点”节点,单击“添加 FTP 站点”,或者单击“操作”窗格中的“添加 FTP 站点”

    • %SystemDrive%\inetpub\ftproot 处创建一个文件夹

    • 设置允许匿名访问的权限:

      1. 打开命令提示符。

      2. 输入以下命令:

        ICACLS "%SystemDrive%\inetpub\ftproot" /Grant IUSR:R /T
        
      3. 关闭命令提示符。

      Screenshot of the I I S Manager page. In the connections pane Application Pools is expanded and Add F T P Site is highlighted.

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

    • 在“FTP 站点名称”框中输入“我的新 FTP 站点”,然后导航到在先决条件部分中创建的 %SystemDrive%\inetpub\ftproot 文件夹。 请注意,如果选择键入内容文件夹的路径,可以在路径中使用环境变量。

    • 完成这些项,然后单击“下一步”

      Screenshot of the Add F T P Wizard Site Information page. In the F T P site name box is the text My New F T P Site.

  4. 在向导的下一页:

    • 从“IP 地址”下拉菜单中选择 FTP 站点的 IP 地址,或者选择接受默认选择“所有未分配”。由于你稍后将在本演练中使用管理员帐户,因此必须确保限制对服务器的访问,并通过在“IP 地址”框中键入“127.0.0.1”来输入计算机的本地环回 IP 地址

      注意

      如果使用 IPv6,则还应该添加“::1”的 IPv6 localhost 绑定。

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

    • 本演练不使用主机名,因此请确保“虚拟主机”框为空

    • 确保将“证书”下拉列表设置为“未选择”,并选择“允许 SSL”选项

    • 完成这些项,然后单击“下一步”

      Screenshot of the Add F T P Site Wizard Binding and S S L Settings page. The Binding category includes the I P Address box. The Start F T P site automatically checkbox is checked.

  5. 在向导的下一页:

    • 为“身份验证”设置选择“匿名”

    • 对于“授权”设置,请从“允许以下对象访问”下拉列表中选择“匿名用户”,然后为“权限”选项选择“读取”

    • 完成这些项,然后单击“完成”

      Screenshot of the Add F T P Site Wizard Authentication and Authorization Information page. In the Authentication box, the Anonymous checkbox is checked.

总结

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

  1. 你新建了名为“我的新 FTP 站点”的新 FTP 站点,该站点的内容根目录位于 %SystemDrive%\inetpub\ftproot
  2. 你将 FTP 站点绑定到了计算机端口 21 上的本地环回地址,并选择了不对 FTP 站点使用安全套接字层 (SSL)。
  3. 你为 FTP 站点创建了一个默认规则,以允许匿名用户对文件进行“读取”访问。

步骤 2:添加其他 FTP 安全设置

创建匿名用户可浏览的新 FTP 站点对于公共下载站点很有用,但 Web 创作同样重要。 在此步骤中,你将为管理员帐户添加其他身份验证和授权设置。 为此,请按照以下步骤操作:

  1. 在 IIS 管理器中,单击之前创建的 FTP 站点对应的节点,然后双击“FTP 身份验证”打开 FTP 身份验证功能页
    Screenshot of the I I S Manager page. The My New F T P Site Home page is shown.The F T P Authentication icon is highlighted.

  2. 显示“FTP 身份验证”页后,请突出显示“基本身份验证”,然后单击“操作”窗格中的“启用”
    Screenshot of the F T P Authentication page. The Basic Authentication option is highlighted. The Enable button is located in the Actions pane.

  3. 在 IIS 管理器中,单击 FTP 站点对应的节点以重新显示所有 FTP 功能的图标。

  4. 必须添加一条授权规则,以便管理员可以登录。 为此,请双击“FTP 授权规则”图标打开 FTP 授权规则功能页
    Screenshot of the My New F T P Site Home page. The F T P Authorization Rules icon is highlighted.

  5. 显示“FTP 授权规则”页后,单击“操作”窗格中的“添加允许规则”
    Screenshot of the F T P Authorization Rules page. Add Allow Rule is located in the Actions pane.

  6. 显示“添加允许授权规则”对话框后

    • 选择“指定的用户”,然后在框中键入“administrator”
    • 对于“权限”,请选择“读取”和“写入”
    • 完成这些项,然后单击“确定”
      Screenshot of the Add Allow Authorization Rule dialog box. The checkboxes next to Specified users is checked. The two Permissions options are also checked.

总结

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

  1. 你向 FTP 站点添加了基本身份验证。
  2. 你添加了一条授权规则,该规则向管理员帐户授予对 FTP 站点的“读取”和“写入”权限。

步骤 3:登录到 FTP 站点

在步骤 1 中,你创建了一个匿名用户可访问的 FTP 站点,在步骤 2 中添加了允许管理员登录的其他安全设置。 在此步骤中,你将使用管理员帐户匿名登录。

注意

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

匿名登录到 FTP 站点

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

  2. 键入以下命令以连接到 FTP 服务器:

    FTP localhost
    
  3. 当系统提示你输入用户名时,请输入“anonymous”。

  4. 当系统提示你输入密码时,请输入你的电子邮件地址。

现在应该可以匿名登录到 FTP 站点。 根据在步骤 1 中添加的授权规则,你应该只对内容文件夹拥有读取访问权限。

使用管理员帐户登录到 FTP 站点

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

  2. 键入以下命令以连接到 FTP 服务器:

    FTP localhost
    
  3. 当系统提示你输入用户名时,请输入“administrator”。

  4. 当系统提示你输入密码时,请输入管理员密码。

现在,你应该以本地管理员身份登录到了 FTP 站点。 根据你在步骤 2 中添加的授权规则,你应该对内容文件夹拥有读取和写入访问权限。

总结

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

  1. 你已匿名登录到 FTP 站点。
  2. 以本地管理员身份登录到 FTP 站点。

通过编辑 IIS 配置文件创建新的 FTP 站点

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

注意

编辑 ApplicationHost.config 文件需要完整的管理权限。 为此,最好采用以下两种方法之一:

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

注意

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

https://go.microsoft.com/fwlink/?LinkID=113664

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

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

  2. 找到 <sites> 部分。 此部分包含默认网站,应以如下内容开头:

    <sites>
      <site name="Default Web Site" id="1">
         <application path="/">
            <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" />
         </application>
         <bindings>
            <binding protocol="http" bindingInformation="*:80:" />
         </bindings>
      </site>
    
  3. 复制默认网站的整个部分,并将其粘贴到紧邻 </site> 结束标记下方的新行中。

  4. 更改站点的设置以创建唯一的 FTP 站点:

    • 修改新站点的 nameid 属性,使其分别包含“Default FTP Site”和“2”。

      注意

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

    • 将绑定元素上的 protocol 属性值更改为包含“ftp”。

    • physicalPath 属性更改为 %SystemDrive%\inetpub\ftproot

    • bindingInformation 属性的 port 值更改为包含“21”。

  5. 在结束绑定标记下添加 <ftpServer> 部分,该部分将包含身份验证设置。

    <ftpServer>
      <security>
         <authentication>
             <anonymousAuthentication enabled="true" userName="IUSR" />
             <basicAuthentication enabled="true" />
         </authentication>
         <ssl controlChannelPolicy="SslAllow" dataChannelPolicy="SslAllow" />
      </security>
    </ftpServer>
    

    注意

    FTP 站点的身份验证设置是在站点级别上配置的,这与网站的身份验证不同,网站的身份验证可以根据 URL 进行配置。

    <sites> 部分现在应包含类似于以下示例的内容:

    <sites>
       <site name="Default Web Site" id="1">
          <application path="/">
             <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" />
          </application>
          <bindings>
             <binding protocol="http" bindingInformation="*:80:" />
          </bindings>
       </site>
       <site name="Default FTP Site" id="2">
          <application path="/">
             <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\ftproot" />
          </application>
          <bindings>
             <binding protocol="ftp" bindingInformation="*:21:" />
          </bindings>
          <ftpServer>
             <security>
                <authentication>
                   <anonymousAuthentication enabled="true" userName="IUSR" />
                   <basicAuthentication enabled="true" />
                </authentication>
                <ssl controlChannelPolicy="SslAllow" dataChannelPolicy="SslAllow" />
             </security>
          </ftpServer>
       </site>
    
  6. 滚动到 ApplicationHost.config 文件的底部,为默认 FTP 站点添加将包含授权设置的位置部分。

    <location path="Your FTP Site Name">
       <system.ftpServer>
           <security>
               <authorization>
                   <add accessType="Allow" users="*" permissions="Read" />
                   <add accessType="Allow" users="administrator" permissions="Read, Write" />
               </authorization>
           </security>
       </system.ftpServer>
    </location>
    

    注意

    在此示例中,FTP 站点的授权设置是按 URL 配置的,这些设置专门为所有用户启用读取权限,并为管理员帐户启用读/写权限。

  7. 保存 ApplicationHost.config 文件。

现在你应该能够使用 FTP 客户端登录到新建的 FTP 站点。 若要在 IIS 服务器上匿名使用 Internet Explorer,请在 Internet Explorer 地址栏中输入 ftp://localhost。 应该登录并匿名查看文件;系统不会提示你输入用户凭据。

总结

在此任务中,你通过编辑 IIS 配置文件创建了一个 FTP 站点。 回顾在此步骤中完成的项:

  1. 你使用默认网站的设置作为模板创建了一个新的 FTP 站点。

  2. 你为 FTP 站点配置了以下授权规则:

    • 所有用户都具有读取权限。
    • 管理员帐户具有读/写权限。