ftp 服务器:IIS之FTP服务器详解(万字长文,记得收藏哦)

文章目录

  • 一、FTP服务器简介
  • 二、搭建FTP服务


一、FTP服务器简介

FTP(File Transfor Protocol)全称文件传输协议,是用于在网络上进行文件传输的一套标准协议,它工作在OSI模型的第七层,TCP模型的第四层, 即应用层。

FTP服务的端口号是:TCP 20/21

FTP工作方式有两种:

  • 主动模式
    21端口:控制端口
    20端口:数据传输端口
  • 被动模式
    21端口:控制端口
    随机端口:数据传输端口
  • 注意:
    主被动模式,阐述的是数据传输过程
    主被动模式,选择权在客户机上
    主被动模式,所谓主或被是站在服务器的角度

    二、搭建FTP服务

    在之前博客中我们介绍了WEB服务器,当时在 Windows server 2003 虚拟机上安装WEB服务软件时,顺便也安装了FTP服务软件,如下图:

    其实这时候电脑已经是FTP服务器了,我们可以验证下,打开 Windows XP 虚拟机,打开桌面上【我的电脑】,如下图

    在地址栏里面输入命令:ftp://10.1.1.2,这里 10.1.1.2 是 Windows server 2003 这台虚拟机的IP地址,然后回车,我们可以看到是没有报错的,只是默认站点里面没东西

    我们回到 2003 虚拟机中,再来看FTP软件,找到默认站点的位置。右键点击【默认 FTP 站点】,在下拉列表中点击【属性】

    点击【主目录】,如下图就可以看到FTP默认站点的路径

    然后点击桌面【我的电脑】,找到默认站点路径,可以看到里面确实是空的

    我们在里面随便新建一些文件,如下图

    再回到 XP 虚拟机中,打开【我的电脑】,在地址栏输入:ftp://10.1.1.2,然后回车,如下图

    可以看到刚才建好的文件,在站点里面都有,我们可以直接拖出来放入 XP 电脑中,也就是下载下来

    刚才我们看到默认站点是在C盘下,我们也可以再发布别的盘下面的内容。回到 2003 虚拟机中,打开D盘,可以看到 login 文件夹,里面是一个登录管理页面。假如我现在是网站的管理员,需要定期更新这个页面里面的内容,我想委托别人来帮我管理这个站点,我自己可以忙其他事情。

    这时候如果直接把我的管理员账号密码给他又不太安全,我可以将这个文件夹发布到FTP站点,然后给他创建一个FTP账号和密码,让他可以远程操作,我们现在把 login 发布出去,步骤如下:

  • 右键点击【默认 FTP 站点】,在下拉列表中点击【属性】
  • 点击【主目录】,点击【浏览】
  • 找到D盘下的 login,点击【确定】
  • 可以看到已经改过来了,点击【确定】
  • 回到 XP 电脑中,在FTP连接的界面中,右键点击空白处,在下拉列表中点击【刷新】
  • 可以看到已经变成了D盘里面的 login 文件夹中的登录页面文件,这样另外的用户如果要辅助管理这台服务器,就不用拿到服务器的账号密码,只要通过FTP连接来进行管理,对站点进行上传、下载、更新等等操作
  • 大家如果日后在网上买网站,对方公司除了做好的网站给到我们之外,还会提供一个FTP账号,可以让我们通过FTP上传更新网页内容。

    看到刚才的页面,有的小伙伴可能会好奇:不是说给对方创建一个账号和密码的吗?怎么他直接通过网址就登录了FTP站点,这是因为我们没有设置,FTP站点默认的是匿名登录,我们可以看看。

    回到 2003 虚拟机中,右键点击【默认 FTP 站点】,在下拉列表中点击【属性】

    点击【安全账户】,就可以看到这里默认是勾选的【允许匿名连接】

    当然在实际生产工作中,肯定是不允许匿名连接的,都是给不同的用户创建各自的账号和密码。这点有别于我们之前介绍的WEB站点,WEB站点一般都是匿名连接的,大家对这个也都深有体会,我们访问网页,除了有的需要创建用户名和密码(比如VIP会员等),正常都是直接访问网页的,没有说遇到一个网页输入一个用户名密码。

    接下来继续对FTP软件进行研究,我们从头开始操作一下,把原有的【默认 FTP 站点】,右键点击,在下拉列表中点击【删除】,在弹出的窗口点击【是】,将其删掉

    右键点击【FTP 站点】,在下拉列表中点击【新建】,点击【FTP 站点】

    点击【下一步】

    描述这里随便写,完了点击【下一步】

    点击右边的下拉三角标,选择本机的IP地址,然后点击【下一步】

    点击【下一步】

    这里是输入主目录的路径

    我们打开【我的电脑】,在D盘里面再新建一个文件夹,名字自己随便起,这里就叫xiaoshiyi

    点进去创建的文件夹,在里面创建两个文件夹,一个叫数据上传,一个叫资料下载。让公司员工访问其中一个可以上传自己的数据,另一个专门来下载公司资源

    然后回到刚才的主目录路径设置页面,点击【浏览】,进去找到D盘下面的 xiaoshiyi 文件夹,点击【确定】

    点击【下一步】

    这个页面就是选择用户的FTP访问权限,但是用户访问进来这个文件夹之后,还有本地文件夹的NTFS权限约束,二者取交集。这和博主之前介绍的文件共享服务里面的权限类似,文件共享有自己的共享权限,共享之后还要受本地文件的NTFS权限约束,也是二者取交集。我们是把文件共享权限设置为完全控制,然后再单独对本地文件设置不同权限,这样本地文件权限就决定最终用户的使用权限,这里也是如此,我们全部勾选上,点击【下一步】

    点击【完成】

    这样FTP站点就发布完成了

    不过还不算完,既然我不想把自己的服务器管理员账号密码给别人,那就要给对方创建一个用户名密码来专门进行FTP远程操作,cmd进入控制台,在里面创建用户名为 user01,密码为 123456,如下图

    再创建一个用户名 admin,密码为 123,如下图

    然后回到D盘里面,对 xiaoshiyi 文件夹里面的两个文件夹进行权限设置,目的是让 admin 用户对两个文件夹都有完全控制权限,然后 user01 用户只能对数据上传文件夹有上传权限,对资料下载文件夹只有下载权限,设置步骤如下:

  • 右键点击 xiaoshiyi 文件夹,在下拉列表中点击【属性】
  • 点击【安全】,点击【Users】,因为我们创建的两个用户都是属于 Users 组里面,我们可以看到该组的用户权限是对文件夹里面的文件可以读取,也就是刚才创建的两个用户都有可以看到里面两个文件夹的权限,并且也都可以下载,读取就是意味着下载
  • 进入 xiaoshiyi 文件夹里面对两个文件夹单独设权限,右键点击【数据上传】,在下拉列表中点击【属性】
  • 点击【安全】,点击【高级】
  • 默认是勾选的继承父项权限,这里我们取消勾选,在弹窗中点击【复制】,然后点击【确定】。这是因为我们要对这个文件夹单独设置对于用户的其他权限,先取消继承父项的权限,有便于我们重新定义权限
  • 选中【Users】,点击【删除】,这样自己添加用户,不同用户,不同权限
  • 点击【添加】
  • 把 user01 和 admin 两个用户添加进来,中间用分号间隔,点击【确定】
  • 选中【user01】用户,勾选上【列出文件夹目录】和【写入】这两个权限,点击【应用】,意味着该用户对这个文件夹只有上传和看到该文件夹的权限,没有下载的权限
  • 选中【admin】用户,将下面权限勾选上【完全控制】,这样全部权限都会选上,点击【确定】
  • 右键点击【资料下载】,在下拉列表中点击【属性】
  • 点击【安全】,点击【高级】
  • 去掉勾选【允许父项…】,点击【复制】,点击【确定】,意味着取消继承
  • 选中【Users】组,点击【删除】,删除Users组
  • 点击【添加】
  • 输入 admin 和 user01 用户,两个之间用分号间隔,点击【确定】
  • 选中【admin】用户,勾选【完全控制】,这样全部选上权限,点击【应用】
  • 选中【user01】用户,勾选以下三个权限,点击【确定】,意味着 user01 用户只能对此文件夹下载,不能执行上传权限
  • 这样最终两个文件夹对不同用户设置不同权限,数据上传文件夹对 user01 用户而言只有上传权限,对 admin 用户而言则是有完全控制权限;资料下载文件夹对 user01 用户而言只有下载权限,对 admin 用户而言则是有完全控制权限;

    再回到FTP软件中,右键点击【xiaoshiyi】,在下拉列表中点击【属性】

    点击【安全账户】,去掉勾选【允许匿名连接】,在弹窗中点击【是】,点击【确定】

    接下来验证一下,回到 XP 虚拟机中,点击【我的电脑】在地址栏中输入 ftp://10.1.1.2,回车可以看到如下图,要我们输入用户名和密码

    我们先输入用户 user01 和密码 123456,点击【登录】

    进来之后就可以看到 2003 虚拟机上放的两个文件夹

    只是里面是空的,为了验证权限,我们回到 2003 虚拟机中给两个文件夹里面分别新建文件

    回到 XP 虚拟机中在FTP链接界面中刷新一下

    点开数据上传文件夹,尝试将里面文件拖出来下载,发现报错,下载不了,因为 user01 用户对于该文件夹中的文件没有下载权限

    在 XP 电脑桌面上新建一个文件夹,尝试拖入FTP文件站点的数据上传文件夹中,发现可以上传成功,因为 user01 用户可以对数据上传文件夹有上传权限

    点开资料下载文件夹,尝试将里面文件下载拖出来,下来到桌面,发现可以下载成功,因为 user01 用户对资料下载文件夹有下载权限

    尝试将桌面的新建文件夹拖入FTP站点的资料下载文件夹中,发现报错,因为 user01 用户没有对资料下载文件夹的上传权限

    接下来验证另一个用户 admin 的权限,这跟之前的文件共享服务不同,文件共享如果要切换另一个账户登录,必须注销重新登录一次客户机,让他忘掉之前的文件共享登录用户。FTP则是记不住上次登录用户的,除非勾选上让他记住,我们直接可以鼠标右键点击当前FTP连接界面的空白处,点击【登录】,就可以切换到另一个用户登录

    输入用户名 admin 和密码 123,点击【登录】

    还是看到这两个文件夹

    我们点开数据上传文件夹,直接测试看能否下载里面的文件,将里面文件都拖出到桌面,这里提示是否覆盖,因为桌面有新建文件夹,点击【是】

    可以看到下载成功

    我们在桌面新建一个图片,然后拖入站点,发现也可以上传成功

    然后试试删除,也可以删除,因为 admin 用户对于该文件夹有完全控制权限

    打开资料下载文件夹,将桌面的图片上传上去,发现没问题

    将桌面原有数据都清除,然后将资料下载里面的文件都拖出来下载到桌面,发现也没问题

    全部删除也没有问题,证明我们设置的 admin 用户对该文件夹的完全控制权限没问题

    到此为止,FTP服务器大家就会搭建了,往电脑中装完IIS软件的FTP插件,把你要发布的站点创建发布就行。FTP权限给到最高,然后去设置文件的NTFS权限。这种方式虽然复杂一些,但是稳定性很高,非常适合企业生产环境。第三方FTP软件,尤其是有的小软件就不稳定,对于临时使用还可以,人员一多就会宕机了。

    再给大家归纳一下部署FTP服务器要注意的几个环节,如下

    1. 配置静态IP
    2. 安装 IIS-FTP 插件(上面这两步我在之前的博客【IIS之WEB服务器详解(上)】中都有操作完成)
    3. 使用默认站点或创建新的站点
    注意:用户最终权限为FTP权限与NTFS权限取交集
    建议:FTP权限全部勾选,然后具体的在NTFS里做权限设置
    4. 去掉匿名访问对勾

    我们刚才的实验都是在虚拟机里面完成的,假如我现在在自己真实的电脑,我的电脑是 Windows10 系统,我在自己电脑上想分享些数据给到同一局域网下面的其他小伙伴使用。如果使用网盘或者U盘拷贝再下载速度很慢,再则就是在自己的电脑上装个 IIS软件,这个也非常麻烦。因为 IIS软件 是微软大家庭里面服务器系统的专利,win7和win10也能装,但是功能十分有限,而且不好找。

    接下来给大家介绍一个FTP的小软件,直接双击打开就能使用,不用安装到本地。而且适合普通用户操作,很人性化。软件名称叫 FTPserver.exe,大小只有几十k,双击打开之后界面如下:

    里面的端口号不能改,最大连接数就是最大可以连接多少用户,这个自己可以改,账户名称和账户密码自己设置一个,这是该软件的账户名和密码,不是我们上面在电脑上创建的用户名和密码,其他客户机要想远程访问我这个FTP软件分享的内容,只要给他这里设置的用户名和密码即可,访问目录里面就是自己要共享的文件所在目录,权限设置相比刚才我们那种设置方式而言,对于小白更加友好,直接自己点,你想给这些用户什么权限,就勾选什么,完了之后点击左下角【启动服务】

    用户要访问我的FTP共享文件,只需在他电脑上打开任意电脑磁盘目录,在上方地址栏输入 ftp://我这台电脑的IP,然后回车,就可以看到登录页面,输入我给他的用户名和密码,点击登录即可看到共享的内容。

    说明:这个软件在使用时,会获取当前要共享的文件目录的完全控制权限,继而给共享的普通用户进行权限分配。所以电脑的防火墙可能会拦截,要正常使用,可以暂时关掉防火墙,如果需要这个软件的可以在评论区留言找博主领取。

    相关推荐

    相关文章