vsftpd在Linux中需先安装(yum/dnf/apt)、启用启动服务,再按需配置匿名访问(anonymous_enable=YES)或本地用户登录(local_enable=YES、chroot限制),最后配置防火墙与SELinux策略。

如果您希望在Linux系统中提供文件传输服务,vsftpd是一个稳定且安全的FTP服务器软件。以下是安装与配置vsftpd的具体步骤:
一、安装vsftpd软件包
vsftpd通常不预装在主流Linux发行版中,需通过系统包管理器手动安装。安装过程会部署核心二进制文件、默认配置及初始化脚本。
1、在基于RPM的系统(如CentOS、Rocky Linux)上执行:sudo yum install -y vsftpd
2、在较新版本的RHEL/CentOS 8+或Fedora系统上使用:sudo dnf install -y vsftpd
3、在基于Debian的系统(如Ubuntu、Debian)上执行:sudo apt update && sudo apt install -y vsftpd
二、启用并启动vsftpd服务
安装完成后需启用开机自启,并立即启动守护进程,使FTP服务开始监听默认端口(21)。
1、启用服务开机自启:sudo systemctl enable vsftpd
2、立即启动服务:sudo systemctl start vsftpd
3、验证服务运行状态:sudo systemctl status vsftpd
三、配置匿名访问模式
匿名FTP允许未认证用户以ftp或anonymous身份上传或下载文件,适用于公开资源分发。该模式需明确启用并设置对应目录权限。
1、编辑主配置文件:sudo nano /etc/vsftpd/vsftpd.conf
2、将以下参数设为YES:anonymous_enable=YES
3、指定匿名根目录(默认为/var/ftp):anon_root=/var/ftp
4、重启服务使配置生效:sudo systemctl restart vsftpd
四、配置本地用户登录
本地用户模式允许系统账户直接登录FTP,其主目录即为FTP工作目录。需禁用匿名访问并开启用户认证机制。
1、在/etc/vsftpd/vsftpd.conf中设置:anonymous_enable=NO
2、启用本地用户登录:local_enable=YES
3、允许用户写入操作(如上传、删除):write_enable=YES
4、限制用户仅能访问自身主目录(chroot):chroot_local_user=YES
5、创建chroot列表例外(如需特定用户不受限):chroot_list_enable=YES
6、指定列表文件路径:chroot_list_file=/etc/vsftpd/chroot_list
7、重启服务:sudo systemctl restart vsftpd
五、调整防火墙与SELinux策略
即使vsftpd运行正常,若系统防火墙或SELinux阻止FTP流量,客户端仍将无法连接。需放行端口并设置正确上下文。
1、在firewalld中开放FTP服务:sudo firewall-cmd --permanent --add-service=ftp
2、重载防火墙规则:sudo firewall-cmd --reload
3、若启用SELinux,允许FTP读取用户主目录:sudo setsebool -P ftp_home_dir on
4、若需支持被动模式传输,还需启用相关布尔值:sudo setsebool -P allow_ftpd_full_access on










