摘要:在使用华为弹性云服务器ECS搭建FTP服务的时候,常常会遇到搭建完成后没法访问的问题。本篇经过演示windows IIS搭建FTP方法,讲解ftp主动模式、被动模式原理来讲明没法访问的缘由及解决方案。
咱们在使用华为弹性云服务器ECS搭建FTP服务的时候,常常会遇到搭建完成后没法访问的问题。本篇案例经过讲解ftp主动模式、被动模式原理来讲明没法访问的缘由及解决方案。windows
华为云上的弹性公网IP地址EIP和弹性云服务器ECS的私网IP地址是动态绑定的,经过NAT的方式进行映射。FTP协议应用层中携带了IP地址或端口等信息,所以通常须要ALG的帮助才能正常穿越NAT。咱们在华为云主机上搭建ftp服务器后,通常默认没法从公网去访问,要理解这个缘由,首先要了解下ftp的主动模式和被动模式的概念。浏览器
客户端从一个任意的非特权端口N(N>1024,以下图的1026端口)链接到FTP服务器的21端口。而后客户端开始监听N+1(以下图的1027端口),并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它本身的数据端口(20)链接到客户端指定的数据端口(N+1)。安全
用更通俗的语言来理解这个交互过程:服务器
当开启一个FTP链接时,客户端打开两个任意的非特权本地端口N>1024和N+1(分别以下图的1026端口和1027端口)。第一个端口链接服务器的21端口,客户端提交PASV命令给服务端,这样作的结果是服务器会开启一个任意的非特权端口(P>1024),并发送PORT P(以下图2024)命令给客户端。而后客户端发起从本地端口N+1到服务器的端口P的链接用来传送数据。网络
用更通俗的语言来理解这个交互过程:并发
server 版本:Windows Server 2012 R2 标准版 64位简体中文工具
IIS版本: IIS 8spa
“控制面板”—“管理工具”—“服务器管理器”—“仪表盘”3d
客户端IE浏览器通常默认配置采用被动模式访问FTP服务器,若是经过EIP去访问云上ECS部署的FTP服务,会报以下错误:server
理解了FTP被动模式的原理后,咱们就很容易理解访问失败的缘由:
第一步控制通道通讯过程当中,服务端回复给客户端的数据面IP是服务端网卡的私网IP(此处为172.16.0.170)而不是服务端的公网IP地址,致使客户端第二步数据通道建连失败。
以下图所示所示,在“工具->Internet选项->高级”将“使用被动FTP…“勾选去掉。前面说过,FTP主动模式下,FTP服务器会
但有一点须要注意,若是客户端本地网络是经过NAT方式访问外网的,也可能会有问题,因此不建议采用该方案。
以下图所示,在“防火墙的外部IP地址”中填写主机的弹性公网IP便可,此时仍然采用FTP被动模式。建议使用该种方式,该种方法能够支持被动模式访问FTP,且对客户端本地网络无特殊要求。
注意:被动模式下,FTP服务器的安全组入方向须要放通FTP数据通道的端口号(默认为1024~65535的端口号),不然,FTP服务器也没法访问。如上图所示,此处FTP服务器数据通道端口设置为1025~10018,因此FTP服务器网卡对应安全组主要添加以下入方向规则,以下图所示。
以上,是在华为云上如何使用华为云弹性云服务器ECS搭建FTP的实践。