本文档介绍在 Linux 云服务器上搭建 FTP 服务的操作。本例使用 CentOS 7.2 64 位系统进行示例,使用 vsftpd 作为 FTP 服务端,FileZilla 作为客户端。

步骤一:安装 vsftpd
登录云服务器。

安装软件。输入命令:

yum install vsftpd -y
界面出现“ Complete ! ”,表示已安装完成。

步骤二:启动 vsftpd 服务
启动服务。输入命令:

systemctl start vsftpd
命令确认是否启动。输入以下命令,出现图中展示内容即表示已经启动。

netstat -tunlp

公网访问确认是否启动。

通过以下命令安装 telnet 服务
yum -y install telnet
在其他联网计算机上,通过命令行进行测试:
telnet + 云服务器公网 IP + 21
出现下图内容即表示已经启动。

步骤三:编辑 vsftpd 配置文件
在云服务器中,输入命令:vi /etc/vsftpd/vsftpd.conf

编辑内容,状态更改为不允许匿名登录。按下键盘【a】开启编辑,将文件中的anonymous_enable=YES改为 anonymous_enable=NO ,修改完成后按下键盘【Esc】,任意位置输入:write保存修改,输入:quit退出编辑。

步骤四:添加 FTP 用户
添加用户。本例添加名为 ftpuser1 的用户。输入命令:useradd -m -d /home/ftpuser1 -s /sbin/nologin ftpuser1

设置用户登录密码。本例为 ftpuser1 用户设置登录密码。输入命令:passwd ftpuser1,输入密码并确认即可。

常见问题
问题描述
部分用户在本地使用 FTP 客户端连接时可能遇到连接超时和读取目录列表失败的问题。如下图所示。

问题出现在 PASV 命令处。原因在于 FTP 协议在腾讯云网络架构上的不适。FTP 客户端默认被动模式传输,因此在通信过程中会去寻找服务器端的 IP 地址进行连接,但是由于腾讯云的外网 IP 不是直接配在网卡上,因此在被动模式下客户端无法找到有效 IP (只能找到云服务器内网 IP ,内网 IP 无法直接和外网通信),故无法建立连接。

解决途径
将客户端传输模式改为主动即可;
如果客户端网络环境要求被动模式,那么需要在服务端 步骤三 中配置文件中新增这些语句:
pasv_address=XXX.XXX.XXX.XXX //(外网 IP)
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=2048