搭建FTP站点(Linux)
vsftpd(very secure FTP daemon)是一个广泛使用的、开源的FTP服务器软件,以其高性能、高安全性和稳定性著称,支持多种FTP相关协议,包括FTP、SFTP(通过SSH)、TLS/SSL加密的FTP等。本文介绍如何在Linux系统的ECS实例上安装并配置vsftpd。
准备资源
已创建一台基础ECS实例,并满足以下配置。如果您还未创建,请参见自定义购买实例。
- 操作系统:Alibaba Cloud Linux、CentOS 7.x 64位、CentOS 8.x 64位、Ubuntu
- IP地址:实例已分配公网IP地址或绑定弹性公网IP(EIP)。具体操作,请参见绑定和解绑弹性公网IP。
- 安全组:入方向放行80、22、443端口。具体操作,请参见添加安全组规则。
操作步骤
步骤一:安装vsftpd
- 远程连接Linux实例。
- 运行以下命令,安装vsftpd。
- 运行以下命令,启动FTP服务,并设置开机自启动。
- 运行以下命令,查看FTP服务监听的端口。
步骤二:配置vsftpd
- 创建一个Linux用户并设置密码。
FTP支持以下三种认证模式:
本文介绍为FTP服务创建一个Linux系统本地账号。 - 运行以下命令,创建一个供FTP服务使用的文件目录。
- 运行以下命令,创建测试文件。
- 运行以下命令,更改
/var/ftp/test目录的拥有者为ftptest。 - 修改
vsftpd.conf配置文件。 - 创建
chroot_list文件,并在文件中写入例外用户名单。 - 运行以下命令,重启vsftpd服务。
步骤三:设置安全组
搭建好FTP站点后,在实例安全组的入方向添加规则并放行下列FTP端口。具体操作,请参见添加安全组规则。
大多数客户端位于局域网中,IP地址是经过转换的,因此ipconfig或ifconfig命令返回的IP不一定是客户端的真实公网IP地址。若后续客户端无法登录FTP服务器,请重新确认其公网IP地址。
被动模式需开放21端口,以及/etc/vsftpd/vsftpd.conf配置文件中参数pasv_min_port和pasv_max_port之间的所有端口。配置详情如下表所示。
规则方向 | 授权策略 | 协议类型 | 端口范围 | 授权对象 |
入方向 | 允许 | 自定义TCP | 21/21 | 所有要访问FTP服务器的客户端公网IP地址,多个地址之间用逗号隔开。 允许所有客户端访问时,授权对象为0.0.0.0/0。 |
入方向 | 允许 | 自定义TCP |
| 所有要访问FTP服务器的客户端公网IP地址,多个地址之间用逗号隔开。 允许所有客户端访问时,授权对象为0.0.0.0/0。 |
步骤四:测试搭建的FTP服务器
FTP客户端、Windows命令行工具或浏览器均可用来测试FTP服务器。本文以Windows Server 2012 R2 64位系统的本地主机作为FTP客户端,介绍FTP服务器的访问步骤。
- 在本地主机,打开这台电脑。
- 在地址栏中输入
ftp://,本文中为Linux实例的公网IP地址。例如:: ftp://121.43.XX.XX:21。 - 在弹出的登录身份对话框中,输入已设置的FTP用户名和密码,然后单击登录。
vsftp配置文件及参数说明
/etc/vsftpd目录下文件说明如下:
/etc/vsftpd/vsftpd.conf是vsftpd的核心配置文件。/etc/vsftpd/ftpusers是黑名单文件,此文件中的用户不允许访问FTP服务器。/etc/vsftpd/user_list是白名单文件,此文件中的用户允许访问FTP服务器。
vsftpd.conf配置文件参数说明如下:
- 用户登录控制参数说明如下表所示。
- 用户权限控制参数说明如下表所示。
常见问题
- 问题一:本地主机为Windows系统,为什么我无法下载FTP服务器中的文件?
- 问题二:在Windows系统中,使用命令行工具、浏览器等方式连接FTP服务器报错如何处理?

