Windows Server 2016 使用IIS配置FTP
作者:疯狂运维的树懒
场景简介:
A服务器搭建了ftp,现在B服务器要通过ftp去连接A服务器传输文件。
(1)主动模式:A服务器放通20及21端口,对端B服务器需要放通一个高位端口范围以建立数据连接。(例如,放通5000 - 6000)
(2)被动模式:A服务器放通21端口及1024 - 65535间的端口(例如,放通5000 - 6000)端口。B服务器没有要求。
添加IIS角色
选择“开始 > 服务器管理器”, 单击“添加角色和功能”;
下一步;
下一步;
下一步
选择“Web服务器(IIS)”,点击“添加功能”,然后点击下一步;
下一步
选择“FTP服务器”,点击下一步
安装
安装完成后,点击关闭
至此IIS安装完毕。
添加FTP站点
选择“开始 > Windows管理工具”,打开IIS管理器,选择“网站”,右击“添加FTP站点”
设置站点名称和站点目录
绑定IP地址保持默认即可,SSL选择:“无SSL”
身份验证和授权配置
- 身份验证我这里选择了“基本”意思是需要用户提供有效用户名和密码才能访问内容。
- 如果选择匿名,则是允许任何仅提供用户名 “anonymous” 或 “ftp” 的用户访问内容。
- 授权这里我选择了指定用户,仅指定的用户才能访问相应内容,这个指定用户见第二步中添加的用户;
- 权限我选择了读取和写入;
至此FTP站点添加完毕。
添加用于登录FTP站点的用户
如果你的FTP站点是完全对外开放的,可以不创建用户,匿名登录即可;
选择“开始 > Windows管理工具”,打开“计算机管理”;选择“系统用户 > 本地用户和组 > 用户”,在右侧空白处右击,选择“新用户”,设置用户名、密码,点击创建即可
FTP登录用户添加完毕。
设置FTP站点根目录访问权限
打开FTP文件夹属性,选择“安全”,点击“编辑”
点击“添加”
选择指定用户
点击“高级”
点击“立即查找”,选择FTP用户,点击“确定”
点击“确定”
设置ftpuser对FTP目录的权限为完全控制
至此FTP站点根目录访问权限设置完毕。
测试连接
出现报错:
这个报错的原因是:Windows资源管理器默认是使用被动模式连接,而FTP是多通道协议(控制通道和数据通道)。VPC的ECS网卡只有一个私网IP地址,FTP服务器没有指定被动模式的公网IP地址,导致客户端和服务器建立数据通道的连接时,服务器返回的数据通道的连接地址是私网IP地址,公网路由不可达从而导致连接失败。
解决方法:
打开FTP服务器的IIS,打开FTP防火墙支持功能
注意:不是FTP站点里的FTP防火墙支持;
设置被动模式的端口范围,指定服务器的公网IP地址,点击“应用”;
注意:被动模式的端口范围取值大于1023即可,另外安全组上也要放行这个端口范围
重启IIS
再次测试连接正常,且可以正常传输数据。
主动模式连接测试
因为Windows资源管理器连接FTP时默认是被动模式,我们将被动模式的勾选去掉后,就成为主动模式了
但是主动模式连接时再次出现报错:
其实和被动模式下使用Windows资源管理器连接FTP服务器报错是一样的原因,我这里使用的是云服务器做为客户端测试的,而云服务器的网卡上都是配置的私网IP地址,如果服务器网卡上直接配置的是公网IP地址,则不会出现这种报错。
解决方法:
使用一个可以设置以客户端的公网IP连接FTP的软件,我选择使用Filezilla Client免费版,WinScp和Xftp都测了下,没有可以设置的地方,Windows资源管理器也没有设置的地方。
设置方法如下:
测试连接传输:
至此Windows Server 配置ftp就完成了,大概总结下:
FTP的工作方式有2种,主动和被动;
- 主动模式下控制层端口为21,数据层端口20;
- 被动模式下控制层端口未21,数据层端口随机,可设置端口范围;
使用Windows资源管理器连接FTP时,默认是被动模式;
受限于云计算架构,云服务器的网卡都是私网IP地址,所以在配置FTP的时候要注意设置以公网IP地址提供访问;
实际工作中,遇到客户咨询FTP问题,推荐使用被动模式,方便配置,也更安全。
到此这篇关于Windows Server 2016 使用IIS配置FTP的文章就介绍到这了,更多相关WinServer IIS配置FTP内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!