Windows Server IIS 配置FTP
Windows Server IIS 配置FTP
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问题,推荐使用被动模式,方便配置,也更安全。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)