
# 快速构建FTP站点（Ubuntu/Debian）
#### 应用场景
本文介绍了在华为云上如何使用弹性云服务器的Linux实例使用vsftpd软件搭建FTP站点。vsftpd全称是"very secure FTP daemon"，是一款在Linux发行版中使用较多的FTP服务器软件。该指导具体操作以Ubuntu 22.04/Debian 12.0.0 64位操作系统为例。
#### 方案架构
图1快速搭建FTP站点示意图（Ubuntu/Debian）   
![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002189462182.png "点击放大")
#### 方案优势
- 快速构建站点，组网架构简单。
- 网站安全易用。
 
#### 资源和成本规划
表1资源和成本规划 
| 资源       | 资源说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | 成本说明                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| 虚拟私有云VPC | VPC网段：192.168.0.0/16                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | 免费                                                                                                                                                                                                                                                                                                                                                                                    |
| 虚拟私有云子网  | - 可用区：可用区1  - 子网网段：192.168.0.0/24                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | 免费                                                                                                                                                                                                                                                                                                                                                                                    |
| 安全组      | 入方向规则（主动模式）： - 优先级：1  - 策略：允许  - 类型：IPv4  - 协议端口：TCP: 20-21  - 源地址：0.0.0.0/0   入方向规则（被动模式）： - 优先级：1  - 策略：允许  - 类型：IPv4  - 协议端口：TCP: 21以及vsftpdconf配置文件中的端口  - 源地址：0.0.0.0/0   | 免费                                                                                                                                                                                                                                                                                                                                                                                    |
| 弹性云服务器   | - 计费模式：包年/包月  - 可用区：可用区1  - 规格：s6.large.4  - 镜像：Ubuntu 22.04 64bit/Debian 12.0.0 64bit  - 系统盘：40G  - 弹性公网IP：现在购买  - 线路：全动态BGP  - 公网带宽：按流量计费  - 带宽大小：5 Mbit/s                                                                                                                     | ECS涉及以下几项费用： - 云服务器  - 云硬盘  - 弹性公网IP   具体的计费方式及标准请参考[计费模式概述](https://support.huaweicloud.com/price-ecs/ecs_billing_2001.html)。 |
| vsftpd   | 是一款免费、开源的ftp软件                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 免费                                                                                                                                                                                                                                                                                                                                                                                    |
   
#### 搭建FTP站点操作流程
Linux实例手动搭建FTP站点的具体操作步骤如下：
1. [安装vsftpd。]
2. [配置vsftpd。]
3. [配置用户目录。]
4. [设置安全组。]
5. [客户端测试。]
 
#### 实施步骤（手动）
1. 登录弹性云服务器。 
   具体操作请参见[Linux ECS登录方式概述](https://support.huaweicloud.com/usermanual-ecs/zh-cn_topic_0013771089.html)。
   
   
2. 安装vsftp。
   
   1. 执行以下命令安装vsftpd。
      ```
      sudo apt-get update
      sudo apt-get install vsftpd
      ```
      安装过程中若出现"**Do you want to continue? \[Y/n\]**"提示信息，输入"y"或"Y"即可继续安装。
      
   
   2. 运行以下命令，备份原始配置文件。
      ```
      sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
      ```
      
   
   
   
   
3. 配置vsftp。
   
   1. 修改"vsftpd.conf"配置文件。
      1. 执行以下命令打开配置文件"vsftpd.conf"。
         ```
         sudo vim /etc/vsftpd.conf
         ```
         
      
      2. 按**i**键进入编辑模式。
      
      3. 修改打开的"vsftpd.conf"文件。 可根据实际需求选择将FTP配置为主动模式或者被动模式。如果华为云上的服务器需要通过公网IP地址访问华为云上的实例搭建的FTP服务器时，需要将FTP服务器配置为被动模式。
         - 主动模式需要配置的参数如下：
           ```
           #设置以下参数，不允许匿名登录FTP服务器，允许本地用户登录FTP服务器，并指定FTP本地用户使用的文件目录。
           anonymous_enable=NO              #不允许匿名登录FTP服务器
           local_enable=YES                 #允许本地用户登录FTP服务器
           write_enable=YES                 #启用文件上传
           #设置以下参数，限制用户只能访问自身的主目录。
           chroot_local_user=YES                      #所有用户都被限制在其主目录
           chroot_list_enable=YES                     #启用例外用户名单
           chroot_list_file=/etc/vsftpd/chroot_list   #例外用户名单             
           #添加以下参数，配置FTP目录。
           local_root=/home/ftp 
           allow_writeable_chroot=YES
           ```
           
         
         - 被动模式除了需要配置主动模式所需的所有参数外，还需要配置的参数如下：
           ```
           #设置以下参数，配置FTP支持被动模式。并指定可供FTP服务器访问的端口范围，端口范围请根据实际环境进行设置。         
           pasv_min_port=35000            #被动模式下的最小端口
           pasv_max_port=40000            #被动模式下的最大端口
           ```
           
          
      
      4. 按**Esc** 键退出编辑模式，并输入**:wq**保存后退出。
       
   
   2. 执行以下命令重启vsftpd服务使配置生效。
      ```
      sudo systemctl restart vsftpd
      ```
      
   
   
   
   
4. 配置用户目录。
   
   1. FTP安装完成后会默认创建用户名为ftp的用户，默认无密码。执行以下命令修改ftp密码。
      ```
      sudo passwd ftp
      ```
      
   
   2. 执行以下命令，将用户添加到允许的FTP用户列表中。
      ```
      echo "ftp" | sudo tee -a /etc/vsftpd.userlist
      ```
      
   
   3. 执行以下命令，创建FTP文件目录和授予用户权限。
      ```
      sudo mkdir /home/ftp
      sudo chmod 777 /home/ftp
      ```
      
   
   
   
   
5. 设置安全组。
   
   搭建好FTP站点后，需要在弹性云服务器安全组的入方向添加一条放行FTP端口的规则，具体步骤参见[为安全组添加安全组规则](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0030969470.html)。
   表2设置安全组规则 
   | 优先级 | 策略 | 类型   | 协议端口                                      | 源地址       |
   |:---|:---|:---|:---|:---|
   | 1   | 允许 | IPv4 | 基本协议/自定义TCP：21端口                          | 0.0.0.0/0 |
   | 1   | 允许 | IPv4 | 基本协议/自定义TCP：1024-65535间的端口（例如35000-40000） | 0.0.0.0/0 |
      
   
   
6. 客户端测试。
   
   打开客户端的计算机，在路径栏输入"ftp://*FTP服务器IP地址* :*FTP端口*"(如果不填端口则默认访问21端口) 。弹出输入用户名和密码的对话框表示配置成功，正确的输入用户名和密码后，即可对FTP文件进行相应权限的操作。
   ![](https://support.huaweicloud.com/bestpractice-ecs/public_sys-resources/note_3.0-zh-cn.png)
   - 如果FTP服务器配置为主动模式，客户端使用此方法访问FTP站点时，需要对IE浏览器进行设置，才能打开FTP的文件夹。打开IE浏览器，选择"工具 \> Internet 选项 \> 高级"。勾选"启用FTP文件夹视图"，取消勾选"使用被动FTP"。
   
   - 使用浏览器访问FTP服务器出错时，建议您清除浏览器缓存后再尝试。
    
   
   
 
#### 实施步骤（自动）
[快速构建FTP站点](https://www.huaweicloud.com/solution/implementations/build-an-ftp-server.html)
