跳到主要内容

Linux 云服务器搭建 FTP 服务

操作场景

本文以 CentOS 7.2 64位系统为例,使用 vsftpd 作为 FTP 服务端,FileZilla 作为客户端,指导您如何在 Linux 云服务器上搭建 FTP 服务。

操作步骤

安装 vsftpd

  1. 登录 Linux 云服务器。

  2. 执行以下命令安装 vsftpd。

yum install vsftpd -y

启动服务

  1. 执行以下命令启动服务。
systemctl start vsftpd
  1. 执行以下命令确认服务是否启动。
systemctl status vsftpd

返回类似如下信息,则表示 vsftpd 服务已经启动成功。

(可选)验证 vsftpd 服务

说明: 为了保证 FTP 服务端顺利完成配置,您还可以在本地计算机或其他云服务器上执行以下操作步骤,再次验证 vsftpd 服务是否启动成功。以下操作步骤以 Linux 操作系统的本地计算机为例。如果本地计算机为 Windows/Mac OS 操作系统,请确保该计算机已开启 telnet 功能。

  1. 在本地计算机的操作系统界面,执行以下命令,安装 telnet 服务。
yum install telnet -y

说明: 如果您的本地计算机为 Windows/Mac OS 操作系统,请跳过此步骤。

  1. 执行以下命令,测试 vsftpd 服务是否启动成功。
telnet 你的云服务器公网IP 21

返回类似如下信息,即表示已经启动成功。

配置 vsftpd

  1. 执行以下命令,打开 vsftpd 配置文件。
vi /etc/vsftpd/vsftpd.conf
  1. 按 “ i” 切换至编辑模式,将文件中的 anonymous_enable=YES 改为 anonymous_enable=NO。如下图所示:

  2. 按 “ Esc”,输入 “ :wq”,保存文件并返回。

添加 FTP 用户

  1. 执行以下命令,添加用户 ftpuser1
useradd -m -d /home/ftpuser1 -s /sbin/nologin ftpuser1
  1. 执行以下命令,设置用户 ftpuser1 的密码。
passwd ftpuser1

创建用户、用户密码设置成功。

后续操作

在完成了 FTP 服务搭建之后,您可在此基础上进行上传或下载文件。例如, Windows 机器通过 FTP 上传文件。

常见问题

FTP 客户端连接超时或者读取目录列表失败

问题描述

部分用户在本地使用 FTP 客户端连接时可能遇到连接超时和读取目录列表失败的问题。

解决方法

  1. 将客户端传输模式改为主动即可。

  2. 如果客户端网络环境要求被动模式,那么需要在服务端 配置 vsftpd 中的配置文件中新增这些语句:

pasv_address=XXX.XXX.XXX.XXX     //(公网 IP)
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=2048

FTP 客户端上传文件失败

问题描述

Linux 系统环境下,通过 vsftp 上传文件时,提示如下报错信息。

553 Could not create file

解决方法

  1. 执行以下命令,检查服务器磁盘空间的使用率。
df -h
  • 如果磁盘空间不足,将会导致文件无法上传,建议删除磁盘容量较大的文件。

  • 如果磁盘空间正常,请执行下一步。

  1. 执行以下命令,检查 FTP 目录是否有写的权限。
ls -l /home/test
# /home/test 为 FTP 目录,请修改为您实际的 FTP 目录。
  • 若返回结果中没有 w,则表示该用户没有写的权限,请执行下一步。

  • 若返回结果中已有 w,请 提交工单 进行反馈。

  1. 执行以下命令,对 FTP 目录加上写的权限。
chmod +w /home/test
# /home/test 为 FTP 目录,请修改为您实际的 FTP 目录。
  1. 执行以下命令,重新检查写的权限是否设置成功。
ls -l /home/test
# /home/test 为 FTP 目录,请修改为您实际的 FTP 目录。