搭建FTP服务器
vsftpd(非常安全的FTP守护进程)是Linux操作系统下的一个小型、轻量、安全且易于使用的FTP服务器软件。 本文介绍如何在Linux服务器上安装和配置vsftpd,并测试连接到FTP服务器。
前提条件
Linux轻量级应用服务器已经搭建完毕。 详细信息请参见。
背景资料
FTP(File Transfer Protocol)是一种基于客户端/服务器架构的文件传输协议,支持以下两种工作模式:
FTP支持以下三种认证方式:
本文主要介绍配置简单的匿名用户模式和更加安全的本地用户模式。
第1步:准备工作
本文将使用FTP客户端工具FileZilla连接FTP服务器,因此需要完成以下准备工作:
在本地主机上,下载并安装 FileZilla。
具体下载地址请参见FileZilla下载中心。
设置Linux服务器的用户密码。
详细信息请参见。
第2步:安装并配置vsftpd
远程连接Linux服务器。
详细信息请参见。
执行以下命令检查轻量级服务器是否已安装vsftpd。
一些使用应用镜像部署的轻量级应用服务器预装了vsftpd慈云数据自营海外云服务器,高稳定高性价比,支持弹性配置,如果再次安装可能会产生冲突。
vsftpd -v
如果回显信息类似如下,则说明当前轻量级应用服务器已经安装了vsftpd,无需再次安装。 您可以参考应用镜像文档获取FTP用户名和密码,然后进行。
[admin@iZ2579sxicu**** ~]$ vsftpd -v
vsftpd: version 3.0.2
运行以下命令安装 vsftpd。
sudo yum install -y vsftpd
如果出现下图所示信息,则说明vsftpd安装成功。
执行以下命令,将FTP服务设置为开机自动启动。
sudo systemctl enable vsftpd.service
运行以下命令启动FTP服务。
sudo systemctl start vsftpd.service
阐明
如果FTP无法启动写软件云服务器配置,并提示“Job for vsftpd.service failed because the control process exited with error code”,请检查21端口是否被占用。
使用lsof -i:21命令检查是否有进程。
如果有进程,使用kill -9命令杀死该进程。
执行以下命令,查看FTP服务的端口号。
sudo netstat -antup | grep ftp
如下图所示,可以查看FTP服务的端口号,说明该服务已经正常启动。
第三步:设置FTP服务器的访问模式
您可以选择以下任意一种方式来搭建FTP服务器,建议您使用更加安全的本地用户模式。
本地用户模式(推荐)
执行以下命令,创建FTP服务的Linux用户。
在此示例中,用户名为 ftptest。
sudo adduser ftptest
执行以下命令,修改ftptest用户的密码。
sudo passwd ftptest
执行该命令后,根据命令提示符修改FTP用户的密码。
执行以下命令,创建FTP服务的文件目录。
sudo mkdir /var/ftp/test
执行以下命令,将/var/ftp/test目录的所有者更改为ftptest。
sudo chown -R ftptest:ftptest /var/ftp/test
修改vsftpd.conf配置文件。
执行以下命令修改配置文件/etc/vsftpd/vsftpd.conf。
如果安装vsftpd时使用apt install vsftpd安装命令,则配置文件路径为/etc/vsftpd.conf。
sudo vim /etc/vsftpd/vsftpd.conf
按 i 进入编辑模式。
将FTP服务器配置为被动模式。
具体配置参数说明如下。 除下面提到的参数外,其他参数保持默认值即可。
重要的
将以下参数复制粘贴到Linux服务器的配置文件中时,请注意参数不要用#注释掉。 另外写软件云服务器配置,请注意格式问题。 例如,添加额外的空格可能会导致无法重新启动服务。
修改以下参数的值:
#禁止匿名登录FTP服务器。
anonymous_enable=NO
#允许本地用户登录FTP服务器。
local_enable=YES
#监听IPv4 sockets。
listen=YES
在行首添加 # 注释掉以下参数,以关闭监听的 IPv6 套接字:
#listen_ipv6=YES
在配置文件末尾添加以下参数,其中pasv_address参数需要替换为轻量级应用服务器的公网IP地址:
#设置本地用户登录后所在目录。
local_root=/var/ftp/test
#全部用户被限制在主目录。
chroot_local_user=YES
#启用例外用户名单。
chroot_list_enable=YES
#指定例外用户列表文件,列表中用户不被锁定在主目录。
chroot_list_file=/etc/vsftpd/chroot_list
#开启被动模式。
pasv_enable=YES
allow_writeable_chroot=YES
#本示例中为轻量应用服务器的公网IP地址。
pasv_address=39.105.xx.xx
#设置被动模式下,建立数据传输可使用的端口范围的最小值。
#建议您把端口范围设置在一段比较高的范围内,例如50000~50010,有助于提高访问FTP服务器的安全性。
pasv_min_port=50000
#设置被动模式下,建立数据传输可使用的端口范围的最大值。
pasv_max_port=50010