在Linux系统中搭建FTP服务时,vsftpd是常用的轻量型FTP服务端程序,在正式配置服务前,需要先确认当前系统是否已经安装了vsftpd,避免不必要的重复操作。不同Linux发行版的包管理机制不同,对应的检查方式也存在区别,同时还可以结合服务状态、安装路径等维度做验证。

基于包管理工具的检查方法
大部分Linux发行版都提供了包管理工具,通过查询已安装的包列表可以直接确认vsftpd是否安装,这也是最常用、准确度最高的检查方式。
Debian/Ubuntu系列系统
这类系统使用dpkg或者apt作为包管理工具,可通过以下命令检查:
# 使用dpkg查询已安装的vsftpd包 dpkg -l vsftpd # 如果上述命令没有明确输出,也可以用grep过滤所有已安装包 dpkg -l | grep vsftpd # 使用apt工具检查 apt list --installed | grep vsftpd
如果输出中包含vsftpd的包信息,比如版本号、安装状态为ii(表示已安装),则说明vsftpd已经安装。如果提示没有找到对应的包,说明当前系统未安装vsftpd。
CentOS/RHEL/Rocky Linux系列系统
这类系统使用rpm或者yum/dnf作为包管理工具,对应的检查命令如下:
# 使用rpm查询已安装的vsftpd包 rpm -qa | grep vsftpd # 使用yum检查已安装的包 yum list installed | grep vsftpd # 使用dnf检查已安装的包(较新的系统) dnf list installed | grep vsftpd
如果命令输出中包含vsftpd相关的包名和版本信息,说明已经安装,否则未安装。
基于服务状态的检查方法
如果vsftpd已经安装并且尝试过启动,还可以通过系统服务管理工具检查服务是否存在,间接确认安装状态。
使用systemctl检查(systemd管理的系统)
现在大部分主流Linux发行版都使用systemd作为初始化系统,可通过以下命令检查vsftpd服务状态:
# 检查vsftpd服务状态 systemctl status vsftpd
如果输出中显示服务单元文件存在,即使服务没有运行,也说明vsftpd已经安装。如果提示Unit vsftpd.service could not be found,则说明未安装。
使用service检查(sysvinit管理的系统)
部分较老的系统使用sysvinit作为初始化系统,可通过以下命令检查:
# 检查vsftpd服务状态 service vsftpd status
如果输出中显示vsftpd服务的状态信息,说明已经安装,否则未安装。
基于安装路径的检查方法
vsftpd安装后会在系统中生成固定的可执行文件和配置文件,也可以通过查找这些文件确认是否安装。
# 查找vsftpd可执行文件 which vsftpd # 查找vsftpd配置文件 ls -l /etc/vsftpd.conf # 查找vsftpd相关文件 find / -name vsftpd 2>/dev/null
如果which vsftpd命令返回了类似/usr/sbin/vsftpd的路径,说明vsftpd已经安装。如果/etc/vsftpd.conf文件存在,也说明vsftpd已经安装,因为该文件是vsftpd的默认配置文件,只有安装后才会生成。
未安装时的安装方法
如果通过上述方法确认vsftpd未安装,可以根据系统类型执行对应的安装命令:
- Debian/Ubuntu系统:
sudo apt update && sudo apt install vsftpd -y - CentOS/RHEL系统:
sudo yum install vsftpd -y - Rocky Linux/AlmaLinux系统:
sudo dnf install vsftpd -y
安装完成后可以再次使用上述方法验证安装是否成功。