全球加速GA(Global Accelerator)服务当前支持四层与七层协议的加速,其中包括FTP协议。本文为您介绍FTP协议的相关要点,并以当前主流的服务端vsftpd和客户端FileZilla为例,介绍如何使用全球加速服务加速FTP服务。

前提条件

  • FTP服务器安全组已放通入方向21和2100~2120端口。
  • FTP服务器已拥有公网IP地址。
说明

本文以阿里云服务器ECS(Elastic Compute Service)作为FTP服务器。关于阿里云ECS如何配置安全组和公网IP,请参见安全组操作导航快速入门

背景信息

FTP(File Transfer Protocol)是一种文件传输协议,基于客户端和服务器架构,支持以下两种工作模式:
  • 主动模式:客户端向FTP服务器发送端口信息,由服务器主动连接该端口。
  • 被动模式:FTP服务器开启并发送端口信息给客户端,由客户端连接该端口,服务器被动接受连接。
主动模式的工作流程如下:主动模式
序号 流程描述
客户端向21端口发送控制连接请求,建立控制连接。
客户端向21端口报告可以用于数据传输的端口2100。
服务端20端口主动连接客户端的2100端口,进行数据传输。
数据传输完成后,服务端主动关闭连接。
被动模式的工作流程如下:被动模式
序号 流程描述
客户端向21端口发送控制连接请求,建立控制连接。
服务端告知客户端数据传输端口为2120。
客户端重新开启一个端口连接服务端的数据传输端口2120,并进行数据传输。
数据传输完成后,服务端主动关闭连接。

GA不支持服务端主动发起连接,因此只能支持FTP的被动模式。

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

配置步骤

配置步骤

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

以下步骤介绍如何在操作系统为Alibaba Cloud Linux 2.1903 64位的ECS实例上安装并配置vsftpd 3.0.2。当您使用不同操作系统和vsftpd软件版本时,需要根据实际情况调整命令和参数配置。

  1. 远程连接Linux实例。
    远程连接的具体操作,请参见连接方式介绍
  2. 执行以下命令安装vsftpd。
    yum install -y vsftpd
  3. 使用本地用户模式进行认证,创建FTP用户。
    # 创建linux用户ftpdemo
    adduser ftpdemo
    # 修改用户ftpdemo的密码
    passwd ftpdemo
    # 创建一个供FTP服务使用的文件目录
    mkdir /var/ftp/demo
    # ftpdemo用户拥有此目录
    chown -R ftpdemo:ftpdemo /var/ftp/demo
  4. 配置vsftpd。
    vim /etc/vsftpd/vsftpd.conf
  5. 修改配置文件如下:
    # 除下面提及的参数外,其他参数保持默认值即可
    # 修改下列参数的值
    # 禁止匿名登录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
    # 关闭安全检查,需配置为YES,否则FTP客户端不能上传文件到FTP服务器
    pasv_promiscuous=YES
    # 设置被动模式下,建立数据传输可使用的端口范围的最小值
    pasv_min_port=2100
    # 设置被动模式下,建立数据传输可使用的端口范围的最大值
    pasv_max_port=2120
  6. Esc退出编辑模式,然后输入:wq并回车以保存并关闭文件。
  7. 执行以下命令查看或启动vsftpd服务。
    # 重启vsftpd服务
    systemctl restart vsftpd.service
    # 查看vsftpd服务的状态
    systemctl status vsftpd

步骤二:组合购买实例

您可以在全球加速控制台填写自己的加速业务,系统会根据加速业务智能推荐加速方案。根据系统推荐的加速方案,您可以组合购买加速业务所需要的加速实例和基础带宽包。

  1. 登录全球加速管理控制台
  2. 实例列表页面,单击右上角的购买向导
    说明 如果您是首次使用全球加速服务,请忽略该步骤。
    购买向导
  3. 智能推荐产品方案,选择以下与您业务相关的选项区域,根据以下信息填写加速业务,然后单击点击生成方案
    配置 说明
    您需要加速的地域 选择需要进行访问加速的地域。

    本文选择中国(香港)

    服务所在地域 选择目标服务器所在的地域。

    本文选择美国(硅谷)

    是否有ICP备案 选择您的加速服务是否有备案。

    本文选择无备案

    说明 被加速服务部署在中国内地时,必须完成ICP备案才可对外提供服务。更多信息,请参见什么是ICP备案
    服务端部署在 选择后端服务部署在阿里云还是非阿里云。

    本文选择阿里云

    峰值带宽的范围 输入业务高峰期需要的带宽用量,单位是Mbps。

    本文输入2

    最大并发连接数 最大并发连接数定义了一个全球加速实例能够承载的最大连接数量。当实例上的连接超过规格定义的最大连接数时,新建连接请求将被丢弃。

    本文选择5千

  4. 推荐方案区域,确认方案内容后,单击去组合购买
    组合购买入口
  5. 在购买页面,根据以下信息购买加速业务所需要的实例,然后单击立即购买并完成支付。
    配置 说明
    订购时间 选择实例的订购时间。
    类型 选择全球加速实例的类型。

    本文选择标准型

    规格 选择购买全球加速实例的规格。

    本文选择小型Ⅰ(规格单元)

    实例 默认选择实例
    带宽类型 选择购买基础带宽包的带宽类型。

    本文选择精品加速带宽

    带宽峰值 设置基础带宽包的带宽峰值。

    本文设置为2 Mbps。

步骤三:添加加速区域

购买加速业务所需要的实例后,您便可以添加加速区域,指定可以加速访问后端服务的用户所在的地域并为其分配加速带宽。

  1. 实例列表页面,找到已创建的全球加速实例,单击实例ID。
  2. 单击加速区域页签,然后在亚太页签下单击添加接入地域
  3. 添加加速区域对话框,根据以下信息进行配置,然后单击确定
    配置 说明
    地域 选择访问加速服务用户的所属地域。

    本文选择中国香港

    带宽 输入加速服务的地域带宽。

    本文输入2 Mbps。

    IP地址协议 选择用户接入全球加速服务的IP地址协议。

    本文选择IPv4

    添加成功后,全球加速会在接入地域分配一个加速IP,用来加速用户访问。加速IP

步骤四:添加监听和终端节点组

监听负责检查连接请求,根据您指定的端口和协议处理来自客户端的入站连接。每个监听都关联一个终端节点组,通过指定要分发流量的地域,将终端节点组与监听关联。关联后,全球加速会将流量分配到与监听关联的终端节点组内的最佳终端节点。

  1. 在实例详情页面,单击监听页签,然后单击添加监听
  2. 配置监听和协议配置向导页面,根据以下信息配置监听,然后单击下一步
    监听
    配置 说明
    监听名称 输入监听的名称。

    名称长度为2~128个字符,以大小写字母或中文开头,可包含数字、下划线(_)和短划线(-)。

    协议 选择监听的协议类型。

    本文选择TCP

    端口 指定用来接收请求并向终端节点进行转发的监听端口,端口取值范围:1~65499

    本文输入21,2100~21202100~2120步骤一:安装FTP软件并配置FTP服务器FTP服务器中vsftpd.conf配置文件的pasv_min_port~pasv_max_port

    客户端亲和性 选择是否保持客户端亲和性。保持客户端亲和性,即客户端访问有状态的应用程序时,可以将来自同一客户端的所有请求都定向到同一终端节点。

    本文选择源IP

  3. 配置终端节点配置向导页面,根据以下信息配置终端节点组,然后单击下一步
    说明

    FTP协议在客户端和服务器之间建立了两条通信链路、分别是控制链路和数据链路。其中,控制链路负责FTP会话过程中FTP命令的发送和接收。数据链路则负责数据的传输。

    在服务所在地域(终端节点组所属地域),GA实例有多个终端节点出公网IP,但部分FTP服务器配置了连接检查,要求控制链路和数据链路的客户端IP必须相同,这时需要关闭FTP服务端的源IP检查,或者需要您提交工单联系阿里云技术支持开通GA源一致性。

    配置 说明
    节点组名称 输入终端节点组的名称。

    名称长度为2~128个字符,以大小写字母或中文开头,可包含数字、下划线(_)和短划线(-)。

    地域 选择终端节点组所属的地域,即请求要访问的目标服务器的所属地域。

    本文选择美国(硅谷)

    流量调配 配置到不同终端节点组的流量比例。取值范围是0~100%。

    本文配置为100

    后端服务部署在 选择后端服务部署在阿里云还是非阿里云。

    本文选择阿里云

    保持客户端源IP 选择开启或关闭保持客户端源IP。开启后,后端服务器可以通过该功能获取客户端源IP。

    本文选择关闭保持客户端源IP。

    终端节点 终端节点是客户端请求访问的目标主机。您可以根据以下信息配置终端节点:
    • 后端服务类型:选择阿里云公网IP
    • 后端服务:输入要加速的后端服务的IP。本文输入FTP服务器的公网IP。
    • 权重:输入终端节点的权重,权重取值范围:0~255。全球加速根据您配置的权重按比例将流量路由到终端节点。FTP服务器的权重配置为100
  4. 配置审核配置向导页面,确认监听和终端节点配置信息后,单击提交

步骤五:客户端访问测试

本文以Windows Server 2019 64位系统的本地主机作为FTP客户端,使用FileZilla进行文件传输。

  1. 远程连接Windows实例。
    具体操作,请参见通过密码认证登录Windows实例
  2. 启动FileZilla软件。
    您可以访问FileZilla官网下载FileZilla软件。
  3. 在顶部菜单栏,选择文件 > 站点管理器
  4. 站点管理器对话框,单击新站点,然后在选择记录区域设置站点名称,本文中设置为GA加速
    站点管理器
  5. 常规区域,配置传输信息。
    配置 说明
    协议 选择FTP-文件传输协议
    主机 输入FTP登录主机地址,即GA的加速IP。
    用户 输入FTP登录用户名ftpdemo
    密码 输入FTP登录密码。

    表格中未提到的配置项可保持默认。

  6. 单击连接,即可连接到FTP服务器。
    连接成功后,您可以对网站文件进行上传、下载、新建和删除等操作。FileZilla工具界面如下图所示。上传文件
    各区域的作用如下表:
    序号 说明
    显示命令、FTP连接状态和任务执行结果。
    本地区域,即本地硬盘。
    远程区域,即站点区域。双击目录图标可进入相关目录。
    记录区域,可查看FTP任务的队列信息和日志信息。
  7. 打开命令行窗口,执行以下命令,查看数据包延迟情况。
    curl
    -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer:
    %{time_starttransfer}\ntime_total: %{time_total}\n" ftp://<GA加速IP>/<文件路径> --user <username>:<password>
    其中:
    • time_connect:连接时间,从开始到建立TCP连接完成所用的时间,单位为秒。
    • time_starttransfer:开始传输时间。在客户端发出请求后,到后端服务器响应第一个字节所用的时间,单位为秒。
    • time_total:连接总时间。客户端发出请求后,到后端服务器响应会话所用的时间,单位为秒。
    经测试,使用全球加速后,降低了中国香港FTP客户端访问美国(硅谷)FTP服务器的延迟。
    图 1. 加速前的访问延迟情况
    加速前的访问延迟情况
    图 2. 加速后的访问延迟情况
    加速后的访问延迟情况
    说明 使用全球加速服务加速FTP客户端访问FTP服务器的加速效果以您的实际业务测试为准。