zoukankan      html  css  js  c++  java
  • FTP服务器搭建-IIS

    FTP服务

    ​ FTP是用来在两台计算机之间传输文件,是Internet中应用非常广泛的服务之一。它可根据实际需要设置各用户的使用权限,同时还具有跨平台的特性,即在UNIX、Linux和Windows等操作系统中都可实现FTP客户端和服务器,相互之间可跨平台进行文件的传输。因此,FTP服务是网络中经常采用的资源共享方式之一。本问将介绍Windows下FTP服务器的搭建。

    FTP搭建

    ​ Windows系统自带IIS可以使用IIS来搭建FTP服务器,但是IIS默认是不开启FTP功能的,需要用户手动开启。

    运行环境

    • 服务器:Windows Server 2012 R2 Standard
    • 客户机:Windows 10

    操作步骤

    1. 新版系统的IIS默认也是关闭的,所以我们需要先启用IIS服务。首先打开服务器管理器,显示界面如下图所示。

      服务器管理其面板
    2. 点击【添加角色和功能】选项,打开功能向导界面。

      添加角色和功能向导
    3. 点击【下一步】按钮,进入安装类型选择界面,默认为:基于角色或基于功能的安装,采用默认设置。

      安装类型选择
    4. 点击【下一步】按钮,进入添加服务器选择界面,采用默认选项即可。

      服务器选择
    5. 点击【下一步】按钮,进入服务器角色选择界面,打开Web服务器(IIS)节点,勾选FTP服务器相关选项。

      服务器角色
    6. 点击【下一步】按钮,进入功能选择界面,勾选IIS可承载Web核心选项及其他相关选项。

      功能
    7. 点击【下一步】按钮,进入确认界面,确认FTP相关依赖被安装。

      确认界面
    8. 点击【安装】按钮即开始安装。

      安装过程
    9. IIS安装完成后,打开IIS管理器,显示界面如下所示。

      IIS界面
    10. 右键【网站】选择【添加FTP站点】选项,打开添加FTP站点界面。填写FTP站点名称并执行目录物理路径。

      添加FTP站点-站点信息
    11. 点击【下一步】按钮,进入绑定和SSL设置界面。绑定IP地址,选定SSL证书。

      添加FTP站点-绑定和SSL设置
    12. 点击【下一步】按钮,进入身份验证和授权信息界面。指定授权信息及权限。

      添加FTP站点-身份认证和授权
    13. 点击【完成】按钮即可启用改FTP站点。

      启用FTP站点
    14. 点击新建的FTP站点,打开ftp-demo主页。点击FTP防火墙支持,添加外部IP(即:服务器的公网IP)

      FTP防火墙支持
    15. 为了实现权限分离,这里创建一个新的用户作为FTP的访问用户。

      FTP访问用户
    16. 设置新用户对FTP文件夹的访问权限。

      文件夹权限设置
    17. 采用被动模式设置的IIS-FTP服务需要使用到50000-60000端口,所以需要配置安全组规则,否则无法完成目录读取操作。

      添加服务器安全组规则
    18. 在客户端进行连接测试。

      客户端连接测试成功

    问题反思

    FTP模式分类

    FTP服务器一般都支持主动和被动模式,连接采用何种模式是由FTP客户端软件决定。

    主动 FTP :
        命令连接:客户端 >1024 端口 → 服务器 21 端口
        数据连接:客户端 >1024 端口 ← 服务器 20 端口

    被动 FTP :
        命令连接:客户端 >1024 端口 → 服务器 21 端口
        数据连接:客户端 >1024 端口 ← 服务器 >1024 端口

    PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。 当需要传送数据时, 客户端在命令链路上用PORT命令告诉服务器:“我打开了***X端口,你过来连接我”。于是服务器从20端口向客户端的***X端口发送连接请求,建立 一条数据链路来传送数据。

    PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。 当需要传送数据时, 服务器在命令链路上用PASV命令告诉客户端:“我打开了***X端口,你过来连接我”。于是客户端向服务器的***X端口发送连接请求,建立一条数据链 路来传送数据。

    **早先所有客户端都使用主动模式,而且工作的很好,而现在因为客户端防火墙的存在,将会关闭一些端口,这样主动模式将会失败。**在这种情况下就要使用被动模式,但是一些端口也可能被服务器的防火墙封掉。不过因为ftp服务器需要它的ftp服务连接到一定数量的客户端,所以他们总是支持被动模式的。这就是我们为什么要使用被动模式的原意,为了确保数据可以正确的传输,使用 被动模式要明显优于主动模式。

    ​ 服务器上ftp用被动模式,服务器只开50000-60000的端口用于客户端访问,而看了下用1025-1034这样的端口并不行,用抓包也看到被动时,服务器端指定的端口是50492,大多是在5万-6万之间(这个是为什么,暂时没搞清)。依据这些信息说明FTP服务器需要开通50000-60000端口,因此需要修改服务器的安全组规则

    权限分配

    ​ FTP服务器设置的另一个问题就是权限的分配,出于安全的考虑我们不会采用匿名访问策略,随意我们需要有序设置FTP访问用户,以及改用户对FTP目录对应的操作权限等。

    参考链接

    在IIS上搭建FTP服务

  • 相关阅读:
    信息化基础建设 ORM 常见错误
    信息化基础建设 消息引擎
    Enterprise Library:日志的两种需求
    DDD:将概念显式化 之 验证规约
    技术人生:与其鸟宿檐下,不如击翅风雨
    DDD:传统三层架构向DDD的转换
    设计原则:意图导向编程的优点
    Entity Framework:数据库初始化的三种机制
    技术人生:使用价值观、原则和模式来理性的做设计和编程
    技术人生:人的差别在于业余时间
  • 原文地址:https://www.cnblogs.com/z1r0s/p/14284139.html
Copyright © 2011-2022 走看看