ps -ef | grep ftp
检查是否有 FTP 进程(如 vsftpd、proftpd),通过 rpm -qa | grep ftp
(RPM 系)或 dpkg -l | grep ftp
(Debian 系)查看是否安装了 FTP 软件包。在Linux系统中,FTP(文件传输协议)服务常用于文件共享,为确保服务器安全或满足运维需求,管理员需快速确认系统是否安装了FTP服务,以下是专业、可靠且易操作的检查方法,适用于主流Linux发行版(如Ubuntu、CentOS)。
通过包管理工具检查(最推荐)
Linux通过包管理器记录软件安装状态,此方法最准确。
Debian/Ubuntu(APT 包管理器)
dpkg -l | grep -E 'vsftpd|proftpd|pure-ftpd'
- 结果说明:
- 若输出类似
ii vsftpd 3.0.3-12 ...
,表示已安装(ii
为正常安装状态)。 - 无输出表示未安装。
- 若输出类似
CentOS/RHEL(RPM/YUM/DNF 包管理器)
rpm -qa | grep -E 'vsftpd|proftpd|pure-ftpd' # 或 dnf list installed | grep -E 'vsftpd|proftpd|pure-ftpd'
- 结果说明:
- 输出包名(如
vsftpd-3.0.3-34.el8.x86_64
)表示已安装。 - 无输出表示未安装。
- 输出包名(如
检查服务运行状态
若已安装但未运行,FTP服务仍不可用,通过服务管理命令验证:
Systemd 系统(Ubuntu 16.04+/CentOS 7+)
systemctl status vsftpd # 检查最常见的 vsftpd 服务 # 或扩展检查其他FTP服务 systemctl status {vsftpd,proftpd,pure-ftpd} 2>/dev/null
- 关键输出:
Active: active (running)
:服务正在运行。Loaded: not-found
或 无输出:服务未安装或未配置。
SysVinit 系统(旧版 Linux)
service vsftpd status # 或 /etc/init.d/vsftpd status
检查 FTP 进程
通过进程列表实时确认:
ps aux | grep -E 'vsftpd|proftpd|pure-ftpd'
- 结果说明:
- 出现
/usr/sbin/vsftpd
等进程:表示服务正在运行。 - 仅显示
grep
进程:表示未运行。
- 出现
检查 FTP 端口占用
FTP 默认使用 端口 21,通过端口监听状态验证:
sudo netstat -tuln | grep ':21' # 或使用 ss 命令(更高效) sudo ss -tuln | grep ':21'
- 结果说明:
- 输出
LISTEN
状态(如tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
):表示服务已启动。 - 无输出表示端口未被占用。
- 输出
安全建议
- 谨慎启用 FTP:
- FTP 传输明文密码,存在安全风险,建议改用 SFTP(SSH File Transfer Protocol) 或 FTPS。
- 若无需 FTP:
- 卸载服务以降低攻击面:
sudo apt remove vsftpd # Debian/Ubuntu sudo dnf remove vsftpd # CentOS/RHEL
- 卸载服务以降低攻击面:
- 防火墙配置:
- 若必须使用FTP,确保配置防火墙规则(如
ufw allow 21/tcp
)。
- 若必须使用FTP,确保配置防火墙规则(如
总结步骤
- 用
dpkg
或rpm
检查是否安装 → 2. 用systemctl
检查运行状态 → 3. 用ss
或netstat
验证端口。
通过组合使用这些方法,可100%确认FTP服务的安装与运行状态。
引用说明:本文方法基于 Linux 官方文档及常见运维实践,使用的命令均来自 GNU Core Utilities、systemd 手册页和 net-tools 工具集,所有操作需
sudo
权限,执行前请确认用户权限合法性。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/19669.html