文档首页/ 全球加速 GA/ 最佳实践/ 通过全球加速实现FTP文件传输服务加速
更新时间:2025-08-07 GMT+08:00

通过全球加速实现FTP文件传输服务加速

应用场景

FTP(File Transfer Protocol)是一种文件传输协议,基于客户端和服务器架构,支持以下两种工作模式:

  • 主动模式(Active Mode):客户端向FTP服务器发送端口信息,由服务器主动连接该端口。

    主动模式的工作流程如下:

    工作流程

    描述

    ①双方建立控制连接

    客户端向21端口发送控制连接请求,建立控制连接。

    ②同步客户端数据传输端口

    客户端向21端口报告可以用于数据传输的端口2100。

    ③传输数据

    服务端20端口主动连接客户端的2100端口,进行数据传输。

    ④关闭连接

    数据传输完成后,服务端主动关闭连接。

  • 被动模式(Passive Mode):FTP服务器开启并发送端口信息给客户端,由客户端连接该端口,服务器被动接受连接。

    被动模式的工作流程如下:

    工作流程

    描述

    ①双方建立控制连接

    客户端向21端口发送控制连接请求,建立控制连接。

    ②同步客户端数据传输端口

    服务端告知客户端数据传输端口为2120。

    ③传输数据

    客户端重新开启一个端口连接服务端的数据传输端口2120,并进行数据传输。

    ④关闭连接

    数据传输完成后,服务端主动关闭连接。

GA目前仅支持FTP的被动模式。

FTP支持以下三种认证模式:

  • 虚拟用户模式(推荐):FTP服务器的专有用户。虚拟用户只能访问Linux系统为其提供的FTP服务,而不能访问Linux系统的其他资源,进一步增强了FTP服务器的安全性。
  • 本地用户模式:通过Linux系统本地账号进行验证的模式,相较于匿名用户模式更安全。
  • 匿名用户模式(存在安全隐患,不推荐):任何人无需密码验证就可以直接登录到FTP服务器。这种模式最不安全,一般只用来保存不重要的公开文件,不推荐在生产环境中使用。

前提条件

  • FTP服务器安全组已放通TCP入方向21和用户数据传输的端口范围。

    本实践中用户数据传输端口范围以“2100~2120”为例。

  • FTP服务器已拥有公网IP地址。
  • 关闭FTP服务器对于控制和数据连接IP地址的一致性检查。

配置流程

本文以华为云弹性服务器(Elastic Cloud Server)作为FTP服务器。关于华为云弹性云服务器如何配置安全组和公网IP,请参见安全组概述获取EIP

步骤

说明

准备工作

在购买全球加速实例、EIP、ECS等资源之前,请先注册华为账号并开通华为云、完成实名认证、为账户充值。

步骤一:安装FTP软件并配置FTP服务器

以华为云弹性云服务器Linux操作系统为例,安装并配置vsftpd。

当您使用不同操作系统和vsftpd软件版本时,可能需要根据实际情况调整命令和参数配置。

步骤二:创建全球加速实例

全球加速服务为全球化业务用户提供应用加速服务,使用全球加速服务前,用户必须先创建全球加速实例。

步骤三:配置监听器

创建全球加速实例后,您需要为全球加速实例配置监听器。监听器负责监听连接请求,并根据流量转发策略将请求流量分发至终端节点。

步骤四:配置终端节点组和终端节点

将具有相同特性的终端节点放在一个终端节点组组内,每个终端节点组都与特定的区域关联,全球加速实例进行流量分发时,流量分配策略以终端节点组为单位生效。

步骤五:配置验证

在本场景中,全球加速服务的监听器配置的是TCP协议,可以使用curl命令方式验证配置结果。

准备工作

如果用户已注册华为云,可直接登录管理控制台,访问全球加速服务。如果用户没有登录管理控制台的账号,请先注册华为云。

  1. 注册账号并实名认证。

    详细请参见注册华为账号并开通华为云实名认证

    如果您已开通华为云并进行实名认证,请忽略此步骤。

  2. 为账户充值。

    请保证账户有足够的资金,以免购买资源失败。详细请参见账户充值

步骤一:安装FTP软件并配置FTP服务器

本节介绍在华为云弹性云服务器Linux操作系统安装并配置vsftpd。当您使用不同操作系统和vsftpd软件版本时,可能需要根据实际情况调整命令和参数配置。

  1. 远程登录弹性云服务器Linux操作系统。

    详细请参见登录Linux ECS

  1. 执行以下命令安装vsftpd。
    yum install -y vsftpd
  2. 使用本地用户模式进行认证,创建用户。
    # 创建linux用户
    useradd ftpdemo
    # 修改用户ftpdemo的密码
    passwd ftpdemo
    # 创建一个供FTP服务使用的文件目录
    mkdir /var/ftp/demo
    # ftpdemo用户拥有此目录
    chown -R ftpdemo:ftpdemo /var/ftp/demo
  3. 配置vsftpd。
    vim /etc/vsftpd/vsftpd.conf
  4. 修改配置文件。
    # 除下面提及的参数外,其他参数保持默认值即可
    # 修改下列参数的值
    # 禁止匿名登录FTP服务器
    anonymous_enable=NO
    # 允许本地用户登录FTP服务器
    local_enable=YES
    # 监听IPv4 sockets
    listen=YES
    # 关闭监听IPv6 sockets
    # listen_ipv6=NO
    # 添加下列参数
    # 设置本地用户登录后所在目录
    local_root=/var/ftp/demo
    # 开启被动模式
    pasv_enable=YES
    # 关闭控制和数据连接IP地址的一致性检查,需配置为YES,否则FTP客户端不能上传文件到FTP服务器
    pasv_promiscuous=YES
    # 设置被动模式下,建立数据传输可使用的端口范围的最小值
    pasv_min_port=2100
    # 设置被动模式下,建立数据传输可使用的端口范围的最大值
    pasv_max_port=2120
    # 设置被动模式下,使用GA的Anycast IP进行数据传输
    pasv_address=GA Anycast IP

    在FTP被动模式下,以FileZilla工具为例,客户端开启调试模式后,可以查看到服务器接收到PASV命令后返回的响应信息:

    227 Entering Passive Mode (h1,h2,h3,h4,p1,p2)

    • h1,h2,h3,h4:表示服务器的IP地址,采用点分十进制表示法,即h1.h2.h3.h4,该IP地址为pasv_address的配置值。

      当服务器配置里未填写pasv_address时,将使用私网IP/主机IP。

    • p1,p2:用于计算数据传输端口号。

      计算公式为:端口号 = p1 * 256 + p2

      端口号范围:pasv_min_port 至 pasv_max_port

      当端口被占用时,会导致数据传输失败。

  5. 按Esc退出编辑模式。
  6. 输入“:wq”并回车,保存并关闭文件。
  7. 执行以下命令启动vsftpd服务。
    # 重启vsftpd服务
    systemctl restart vsftpd.service
    # 查看vsftpd服务的状态
    systemctl status vsftpd

步骤二:创建全球加速实例

全球加速服务为全球化业务用户提供应用加速服务,使用全球加速服务前,用户必须先创建全球加速实例。

  1. 登录全球加速控制台
  1. 在全球加速服务页面,单击“购买全球加速服务”。
  2. 根据界面提示配置相关参数,详细请参见表1
    图1 创建全球实例
    表1 创建全球加速实例

    参数

    示例

    说明

    名称

    ga-test

    用户将要创建的全球加速实例的名称。

    只能由中文、英文字母、数字、中划线组成。

    长度范围:1-64个字符。

    企业项目

    default

    企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理。

    您可以使用已有企业项目,也可以新建企业项目。

    加速区域

    中国大陆

    加速区域指需要进行访问加速的区域。

    支持选择“中国大陆以外”或“中国大陆”。

    默认:中国大陆以外。

    本实践选择“中国大陆”。

    IP地址类型

    IPv4

    全球加速实例的地址类型。

    “加速区域”选择“中国大陆”时,支持选择“IPv4”或“IPv4+IPv6”。

    本实践选择“IPv4”。

    标签

    example_key1

    example_value1

    为全球加速实例绑定标签,用来标识资源,支持修改。

    描述

    test

    全球加速实例描述。

    长度范围:不超过255个字符。

  3. 单击“下一步”,进入监听器配置页面。

步骤三:配置监听器

创建全球加速实例后,您需要为全球加速实例配置监听器。监听器负责监听连接请求,并根据流量转发策略将请求流量分发至终端节点。

  1. 根据界面提示配置相关参数,详细请参见表2
    图2 添加监听器
    表2 添加监听器

    参数

    示例

    说明

    名称

    listener-test

    监听器名称。

    只能由中文、英文字母、数字、中划线组成。

    长度范围:1-64个字符。

    前端协议

    TCP

    客户端与监听器建立流量分发连接的协议。

    取值范围:TCP、UDP。

    前端端口

    21,2100-2120

    客户端与监听器建立流量分发连接的端口。

    端口取值在1-65535之间,端口范围用“-”连接,多个端口或端口范围以逗号隔开。

    例如:1-10,11-50,51,52-200

    本实践输入“21,2100-2120”。

    客户端亲和性

    按源IP保持会话

    会话保持。

    支持选择“关闭”或“按源IP保持会话”。

    TCP和UDP协议仅支持“按源IP保持会话”。

    按源IP保持会话:基于源IP地址的简单会话保持,将请求的源IP地址作为散列键(HashKey),从静态分配的散列表中找出对应的服务器。即来自同一IP地址的访问请求会被转发到同一台后端服务器上进行处理。

    本实践选择“按源IP保持会话”。

    标签

    -

    监听器的标识,包括键和值。可以为监听器创建20个标签。

    描述

    -

    监听器描述。

    长度范围:不超过255个字符。

步骤四:配置终端节点组和终端节点

FTP协议在客户端和服务器之间建立了两条通信链路:控制链路和数据链路。控制链路用于传输FTP命令,而数据链路则负责数据的传输。

在服务所在地域(终端节点组所属地域),全球加速实例有多个终端节点出公网IP,但部分FTP服务器配置了连接检查,要求控制链路和数据链路的客户端IP必须相同。这时,您可以选择关闭FTP服务端的源IP检查。

  1. 根据界面提示配置相关参数。详细请参见表3
    图3 添加终端节点组
    表3 添加终端节点组

    类型

    参数

    示例

    说明

    终端节点组

    名称

    endpointgroup-test

    终端节点组名称。

    每个监听器下每个区域只允许关联一个终端节点组。

    只能由中文、英文字母、数字、中划线组成。

    长度范围:1-64个字符。

    区域

    华北-北京四

    终端节点组所属区域。

    描述

    -

    终端节点组描述。

    长度范围:不超过255个字符。

    流量调度

    1

    配置到不同终端节点组的流量比例。

    如果增加流量调度比例,将有更多的请求分发到此终端节点组。

    如果将流量调度比例设置为0,则不会将任何请求分发到此终端节点组。

    取值范围为:[0-100]。

    说明:

    如果监听器中有多个终端节点组,分配流量时优先选择时延最低的终端节点组,并按照该终端节点组的流量调度值分配流量,然后再向其他终端节点组分配其余流量。

    终端节点

    1.92.xx.xx

    终端节点充当客户端的接触点,加速实例跨正常运行的终端节点分发传入流量。

    本实践选择“自定义IP”,输入FTP服务器的公网IP。

    健康检查配置

    是否开启

    开启

    开启或者关闭健康检查。

    关闭健康检查可能会导致业务请求转发至异常的后端服务器。

    前端协议

    TCP

    健康检查目前支持选择TCP协议或UDP协议。

    默认:TCP协议。

    前端端口

    21

    健康检查端口号。

    取值范围:[1,65535]。

    高级配置

    检查间隔(秒)

    5

    每次健康检查响应的最大间隔时间。

    取值范围:[1-60]。

    超时时间(秒)

    5

    每次健康检查响应的最大超时时间。

    取值范围:[1-60]。

    最大重复次数

    3

    健康检查最大的重试次数。

    取值范围:[1-10]。

  2. 单击“保存”,保存配置信息。
  3. 单击“下一步”,确认监听器、终端节点组、终端节点信息。
  4. 单击“提交”。
  5. 等待页面提示“创建加速器实例xxx成功”后,单击“完成”。

步骤五:配置验证

本文以Windows Server 2022系统的弹性云服务器作为FTP客户端,使用FileZilla进行文件传输。

  1. 远程连接Windows实例。

    详细请参见登录Windows ECS

  2. 通过FileZilla官网下载安装并启动FileZilla软件。
  3. 在顶部导航中,选择“文件 > 站点管理器”。

  4. 在站点管理器对话框,单击“新站点”,根据界面提示设置站点名称。
  5. 在站点管理器对话框右侧的“常规”区域,为新站点配置传输信息。
    详细请参见表4,未列举的参数保持默认配置。
    表4 配置站点传输信息

    配置

    说明

    协议

    选择FTP-文件传输协议。

    主机

    输入FTP登录主机地址,即全球加速实例的Anycast IP。

    端口

    输入“21”。

    用户

    输入FTP登录用户名。

    密码

    输入FTP登录密码。

  6. 单击“连接”,登录FTP服务器。

    连接成功后,您可以对网站文件进行上传、下载、新建和删除等操作。

  7. 可以通过FileZilla工具查看文件上传下载时间,对比加速前后的数据,验证全球加速的加速效果。