摘要:在使用华为弹性云服务器ECS搭建FTP服务的时候,经常会遇到搭建完成后无法访问的问题。本篇通过演示windows IIS搭建FTP方法,讲解ftp主动模式、被动模式原理来说明无法访问的原因及解决方案。

我们在使用华为弹性云服务器ECS搭建FTP服务的时候,经常会遇到搭建完成后无法访问的问题。本篇案例通过讲解ftp主动模式、被动模式原理来说明无法访问的原因及解决方案。

华为云上的弹性公网IP地址EIP和弹性云服务器ECS的私网IP地址是动态绑定的,通过NAT的方式进行映射。FTP协议应用层中携带了IP地址或端口等信息,因此一般需要ALG的帮助才能正常穿越NAT。我们在华为云主机上搭建ftp服务器后,一般默认无法从公网去访问,要理解这个原因,首先要了解下ftp的主动模式和被动模式的概念。

一、FTP主动模式与被动模式

(一)主动模式

客户端从一个任意的非特权端口N(N>1024,如下图的1026端口)连接到FTP服务器的21端口。然后客户端开始监听N+1(如下图的1027端口),并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。

用更通俗的语言来理解这个交互过程:

  1. 客户端用一个大于1024的端口N与FTP服务器的21端口建立一个控制通道,发送一条命令告诉FTP服务端(即通常说的PORT命令),我的数据通道的通信地址是IP1(本机网卡IP),数据通道的端口N+1,服务端收到请求后回复ACK确认。
  2. 服务端确认后,用源端口20主动与客户端IP1:N+1建立连接,进行数据通信。

(二)被动模式

当开启一个FTP连接时,客户端打开两个任意的非特权本地端口N>1024和N+1(分别如下图的1026端口和1027端口)。第一个端口连接服务器的21端口,客户端提交PASV命令给服务端,这样做的结果是服务器会开启一个任意的非特权端口(P>1024),并发送PORT P(如下图2024)命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。

用更通俗的语言来理解这个交互过程:

  1. 客户端使用源端口N与FTP服务端建立一个控制通道,发送一条命令告诉服务端(即通常说的PASV命令),我将使用被动模式与你通信。服务端收请求后,会告知客户端我的IP是IP2(默认为主机网卡IP)和监听端口P,你可以和我的这个IP和端口通信。
  2. 客户端收到1)中的信息后,使用源端口N+1,与服务端IP2:P建立连接,进行数据通信。

二、windows IIS搭建FTP方法演示

server 版本:Windows Server 2012 R2 标准版 64位简体中文

IIS版本:    IIS 8

1、安装FTP服务

“控制面板”—“管理工具”—“服务器管理器”—“仪表盘”

2、ftp服务部署

客户端IE浏览器一般默认配置采用被动模式访问FTP服务器,如果通过EIP去访问云上ECS部署的FTP服务,会报如下错误:

理解了FTP被动模式的原理后,我们就很容易理解访问失败的原因:

第一步控制通道通信过程中,服务端回复给客户端的数据面IP是服务端网卡的私网IP(此处为172.16.0.170)而不是服务端的公网IP地址,导致客户端第二步数据通道建连失败。

三、解决方案

  1. 客户端IE修改为主动模式

如下图所示所示,在“工具->Internet选项->高级”将“使用被动FTP…“勾选去掉。前面说过,FTP主动模式下,FTP服务器会

但有一点需要注意,如果客户端本地网络是通过NAT方式访问外网的,也可能会有问题,所以不建议采用该方案。

2、服务端配置“FTP防火墙支持”

如下图所示,在“防火墙的外部IP地址”中填写主机的弹性公网IP即可,此时仍然采用FTP被动模式。建议使用该种方式,该种方法可以支持被动模式访问FTP,且对客户端本地网络无特殊要求。

注意:被动模式下,FTP服务器的安全组入方向需要放通FTP数据通道的端口号(默认为1024~65535的端口号),否则,FTP服务器也无法访问。如上图所示,此处FTP服务器数据通道端口设置为1025~10018,所以FTP服务器网卡对应安全组主要添加如下入方向规则,如下图所示。

以上,是在华为云上如何使用华为云弹性云服务器ECS搭建FTP的实践。

【华为云技术分享】华为云弹性云服务器ECS搭建FTP服务实践相关推荐

  1. 【华为云技术分享】鲲鹏弹性云服务器GCC交叉编译环境搭建指南

    南七技校林书豪 1.简介 交叉编译,简单地说,就是在一个平台上生成另一个平台上的可执行代码.本指南主要内容为在非ARM架构服务器环境下搭建ARM的GCC编译环境,编译基于ARM架构的应用软件.交叉编译 ...

  2. 融云技术分享:解密融云IM产品的聊天消息ID生成策略

    本文来自融云技术团队原创分享,原文发布于"融云全球互联网通信云"公众号,原题<如何实现分布式场景下唯一 ID 生成?>,即时通讯网收录时有部分改动. 1.引言 对于IM ...

  3. 阿里云 ECS 7 天实践训练营 - day01 -基于ECS搭建FTP服务

    前段时间无意间看到了阿里云7天实践ECS训练营的活动,因为我本身自己也已经使用了两年的阿里云学生机,但是全凭自己的喜好来的,没有经过一个系统的训练,这次看到这个活动,便马上参加了,所以特在此记录每天的 ...

  4. 在阿里云ECS服务器上搭建FTP服务

    在阿里云ECS服务器上搭建FTP服务 一.简介 二.环境简介 三.搭建FTP服务器步骤 1.配置ECS服务器的安全组策略 2.服务器安装vsftpd软件 3.修改配置文件 4.启动FTP服务 5.Wi ...

  5. 腾讯云Linux云服务器如何搭建FTP服务?

    Vsftpd(very secure FTP daemon)是众多 Linux 发行版中默认的 FTP 服务器.本文以 CentOS 7.6 64位操作系统的腾讯云服务器(CVM)为例,使用 vsft ...

  6. 腾讯云Windows云服务器如何搭建ftp服务?

    本文档介绍如何在 Windows 操作系统的腾讯云服务器(CVM)上通过 IIS 搭建 FTP 站点. 示例软件版本 本文搭建 FTP 服务组成版本如下: Windows 操作系统,本文以 Windo ...

  7. 【华为云技术分享】玩转云上数据湖,解析Serverless 技术落地

    摘要:本文主要介绍Serverless计算相关技术与其在华为云数据湖探索服务(后文简称DLI)中的技术落地. 导读 本文主要介绍Serverless计算相关技术与其在华为云数据湖探索服务(后文简称DL ...

  8. 【华为云技术分享】云图说 | 云硬盘还可以共享?!不了解你就out了

    你还在为这件事头疼吗?想要在多台云服务器间共享数据,却难以实现. 别着急,共享云硬盘轻松搞定.一块共享云硬盘最多可挂载至16台云服务器,搭建共享文件系统或类似的集群管理,数据共享so easy. 切记 ...

  9. 使用云服务器ECS搭建DoH服务的开发实践

    本文来自于云服务器ECS征文活动投稿,已获得作者(昵称绍羽)授权发布. 我们都知道,DNS服务器(Domain Name Server)可以将人类易于理解的域名(就是平时说的网址)转换为机器易于理解的 ...

最新文章

  1. NLP进阶之(七)膨胀卷积神经网络
  2. python 是什么类型的语言-python是一种什么类型的语言
  3. 电感检测_几种常用的电流检测方式
  4. Adobe和苹果相互推诿 不支持Flash谁之过?
  5. aio nio aio_AIO的完整形式是什么?
  6. java保留两位小数 四种方式
  7. element-ui按需引入
  8. MyBatis分页插件PageHelper
  9. powerBI发布到web,管理员权限设置
  10. 人工智能数学基础——贝叶斯分析
  11. 行列式用计算机怎么算,行列式计算机方法
  12. 解决vim不能使用方向键和退格键问题
  13. Mac安装PL2303驱动
  14. 国医馆项目(杂七杂八)
  15. Android-PickerView
  16. 抓包工具fiddler
  17. 带联网功能的RFID宿舍门禁(四)-NodeMCU网站与RC522共同控制舵机转动
  18. 鼠标连点器电脑版安装使用教程
  19. 学习HTML经历记录2
  20. Animation旋转360度

热门文章

  1. 【GAOPS002】round robin Verilog实现
  2. 《乐高EV3机器人搭建与编程》一2.1 零件储存箱
  3. win10计算机跑分,Win11对比Win10系统性能测试,看完跑分结果还等发布会吗?
  4. 社会工程:安全体系中的人性漏洞pdf
  5. HP EliteDesk 800 G4 DM 35W (Japan) Mini Tower黑苹果efi引导文件
  6. 秒云助力中电科32所发布“基于拟态应用集成框架的SaaS云管理平台解决方案”
  7. 大连理工大学计算机科学与技术考研科目,2020年大连理工大学计算机科学与技术考研都考哪些科目,尤其-培训家...
  8. Xcode安装特定版本系统的模拟器(不支持断点下载所以总是下载失败)
  9. 关于安阳工学院ACM实验室纳新问题解答
  10. 计算机网络实验八——聊天程序