IIS 搭建FTP

吐槽 >> IIS10 搭建FTP 真是费了劲了

IIS服务器端

  1. 在 Windows 服务管理中开启 FTP 功能,使 IIS 管理器可以对 FTP 相关服务进行管理。验证成功的方式为两点
  • servicecs.mscMicrosoft FTP Service 被开启
  • IIS管理器右键菜单已有 添加FTP站点
  1. 新建一个FTP站点,与新建网站操作类似
  • FTP站点名称指给要建立的ftp起的人性化名称,用于标示其作用,如办公用、共享用等;
  • 物理路径指该FTP站点顶级根目录,需要一个物理目录的映射,如 D:\ftp
  • IP地址默认无需改动,端口默认21,如有需要自行调整;
  • SSL如无证书,选择无SSL
  • 身份验证新建时可将匿名基本同时勾选;
  • 允许访问新建时可选择所有用户(调试便利);
  1. 调整FTP防火墙支持
    选择IIS中的服务器部分,右侧打开FTP防火墙支持功能,修改数据通道端口范围。端口21被用来传输FTP命令,需要额外指定一个数据传输端口,范围推荐1024-65535。

  2. 为FTP站点增加虚拟目录
    虚拟目录管理起来即灵活,又不用暴露物理路径,右键点击FTP站点添加虚拟目录,即可以在不改变本机真实目录位置的情况下,使FTP可访问到目录和其内容。如虚拟目录名称为a,映射本机真实地址是c:\project\a

本机其它环境的配合

在添加FTP服务时,防火墙应该默认已经增加了以下规则

如自定义FTP的默认21端口,或使用中修改了数据传输端口,需重启该FTP站点和servicecs.mscMicrosoft FTP Service服务使其生效。

服务器环境的配合

使用云服务器的话,还需要云服务器的安全相关配置,也就是需要开放与FTP相关的端口,包括命令端口和数据端口。

实际效果与高级调整

刚才按照默认操作,FTP站点应该已经可用了,浏览器或FTP工具中输入地址 ftp://IP:21 即可查看,因为开启了匿名身份验证,因此浏览器可以直接访问资源,部分工具需要勾选匿名登录即可。但通常不会允许匿名访问或限制匿名,通常的做法是用账号+密码的方法允许指定的账号来操作FTP。如果是独立的FTP服务器会稍微“简单”,因为是软件自己控制安全,所以在FTP服务器软件中设定用户、密码等相关设置即可,如Serv-U、Filezilla Server等,但用IIS就会麻烦一些,因为其依托于Windows安全机制。

  • 为使用FTP的对象建立系统用户组,以便管理多个相关账号(建立用户组是非必须的,主要是为了多用户或用户更改频繁时操作更方便)。我的电脑-计算机管理-本地用户和组-组中新建组,如ftpUser
  • 建立具体用户,我的电脑-计算机管理-本地用户和组-用户中新建用户,如ftp-a,设定其密码及其它约束,并将其设置隶属于ftpUser组;
  • IIS选中该FTP站点(或站点下某目录),打开FTP身份验证,禁用匿名,打开FTP授权规则-添加允许规则-指定的角色或用户组,填写组名ftpUser,选择权限并确定;

可能的坑

遇到了FileZilla访问显示列出目录失败服务器发回了不可路由的地址,使用服务器地址代替两种错误提示,而Xftp直接就是失败。怀疑与IIS的数据端口未配置或配置后防火墙、云安全等未开通有关,尝试调整FTP客户端软件的工作主被动模式,以FileZilla为例实际可以工作的站点配置如

  • 协议选择FTP(非SFTP);
  • 主机即服务器IP,端口填写实际端口号;
  • 用户名和密码填写上文所建立的FTP账号信息;
  • 传输模式选择默认(即被动,实际切换到主动也可以工作);
    FileZilla软件设置调整
  • 连接-FTP-传输模式选择被动(推荐)并勾选失败后允许退回到其它传输模式
  • 连接-FTP-主动模式-主动模式IP选择向您的操作系统查询外部IP地址
  • 连接-FTP-被动模式-被动模式选择退回到主动模式(切换到使用服务器的外部IP地址来代替依旧成功)
posted @ 2021-01-18 16:40  试试手气  阅读(572)  评论(0编辑  收藏  举报