在Linux系统中,FTP(File Transfer Protocol)服务是一种常用的文件传输服务,广泛应用于文件共享、数据备份等场景,确保FTP服务正常运行并掌握查看其状态的方法,是系统管理员日常运维的重要技能,本文将从多个维度详细介绍Linux系统中查看FTP服务的方法,包括服务状态检查、配置文件分析、连接测试及日志排查等,帮助用户全面掌握FTP服务的监控技巧。

检查FTP服务是否已安装
在查看FTP服务状态前,需确认系统中是否已安装FTP服务软件,Linux常见的FTP服务实现有vsftpd(Very Secure FTP Daemon)、proftpd、pure-ftpd等,其中vsftpd因安全性高、配置简单而成为主流选择。
基于RPM系列的系统(如CentOS、RHEL)
使用rpm命令查询是否安装vsftpd:
rpm -qa | grep vsftpd
若返回类似vsftpd-3.0.3-28.el7.x86_64的结果,表示已安装;若无输出,则需通过yum安装:
yum install vsftpd -y
基于DEB系列的系统(如Ubuntu、Debian)
使用dpkg命令查询:
dpkg -l | grep vsftpd
若未安装,可通过apt安装:
apt update && apt install vsftpd -y
查看FTP服务运行状态
确认FTP服务安装后,需检查其是否正在运行,Linux系统提供了多种工具管理服务状态,推荐使用systemctl(现代Linux发行版)或service(传统系统)。
使用systemctl管理服务
# 查看vsftpd服务状态 systemctl status vsftpd.service # 启动vsftpd服务 systemctl start vsftpd.service # 设置开机自启 systemctl enable vsftpd.service # 停止服务 systemctl stop vsftpd.service
执行status后,若输出中包含Active: active (running),则表示服务正常运行;若为Active: inactive (dead),则服务未启动。
使用service命令(兼容旧版系统)
service vsftpd status
返回结果中vsftpd is running表示服务运行中,否则需手动启动:
service vsftpd start
检查进程是否存在
通过ps命令查看FTP相关进程:
ps aux | grep ftpd
若输出中包含vsftpd或proftpd等进程,且进程状态为S+(休眠中)或Ss(会话领导者),则服务正在运行。
检查FTP服务端口监听状态
FTP服务默认使用TCP端口21(控制连接)和20(数据连接,主动模式),被动模式的数据端口可通过配置文件指定,使用netstat或ss命令可查看端口监听状态。
使用netstat命令
netstat -tuln | grep 21
若返回tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN,表示21端口正在监听所有IP地址;若为0.0.1:21,则仅本地可访问。

使用ss命令(推荐,netstat的替代工具)
ss -tuln | grep 21
ss命令的输出更简洁,且性能优于netstat,尤其在高并发场景下。
检查被动模式端口
若FTP服务配置为被动模式,需查看配置文件中指定的端口范围(如vsftpd默认为1024-10000),并确认这些端口是否开放:
ss -tuln | grep -E '1024:10000'
分析FTP服务配置文件
配置文件决定了FTP服务的行为,如是否允许匿名访问、用户权限、端口设置等,通过查看配置文件,可快速定位服务异常的原因。
vsftpd配置文件路径
vsftpd的主配置文件为/etc/vsftpd/vsftpd.conf,可通过cat或less查看:
cat /etc/vsftpd/vsftpd.conf
或使用grep提取关键配置项:
grep -E 'anonymous_enable|local_enable|write_enable|chroot_local_user' /etc/vsftpd/vsftpd.conf
常见配置项说明
anonymous_enable=YES:允许匿名用户访问,设为NO则禁止;local_enable=YES:允许本地系统用户登录;write_enable=YES:允许用户上传文件;chroot_local_user=YES:将用户限制在其主目录中,防止越权访问;listen_port=21:修改监听端口。
proftpd配置文件
若使用proftpd,配置文件路径为/etc/proftpd/proftpd.conf,查看方法类似:
cat /etc/proftpd/proftpd.conf | grep -E 'Port|Anonymous'
测试FTP服务连接
查看服务状态和配置后,需通过实际连接测试验证FTP服务是否可用。
使用ftp命令行客户端
ftp IP地址
例如连接本地FTP服务:
ftp 127.0.0.1
若成功,会提示Name (127.0.0.1:root):,输入用户名(如匿名用户则输入anonymous)和密码即可登录。
使用lftp工具(功能更强大的FTP客户端)
lftp IP地址 -u 用户名,密码
lftp 192.168.1.100 -u test,123456
登录后可通过ls查看文件列表,get下载文件,put上传文件。
使用telnet测试端口连通性
若无法通过FTP客户端连接,可用telnet测试端口是否可达:
telnet IP地址 21
若返回Connected to IP地址.及FTP服务器欢迎信息(如220 vsftpd 3.0.3),则端口正常;若显示Connection refused,则服务未启动或防火墙拦截。

查看FTP服务日志
日志是排查FTP服务问题的关键依据,通过分析日志可定位连接失败、权限错误、配置异常等问题。
vsftpd日志路径
vsftpd默认日志文件为/var/log/vsftpd.log,可通过tail实时监控:
tail -f /var/log/vsftpd.log
常见日志条目示例:
Sun Jan 1 12:00:00 2026 [pid 1234] CONNECT: Client "192.168.1.100":客户端连接;Sun Jan 1 12:00:01 2026 [pid 1234] LOGIN: Client "192.168.1.100", "test", OK:用户登录成功;Sun Jan 1 12:00:02 2026 [pid 1234] [test] FAIL: Login failed.:用户登录失败。
自定义日志路径
若配置文件中指定了自定义日志路径(如xferlog_file=/var/log/vsftpd.log),需查看对应文件:
cat /var/log/vsftpd.log | grep "FAIL"
proftpd日志
proftpd日志通常位于/var/log/proftpd/proftpd.log,查看方法相同:
tail -f /var/log/proftpd/proftpd.log
常见问题排查
服务已启动但无法连接
-
防火墙问题:检查
firewalld或iptables是否开放21端口(被动模式需开放数据端口):# firewalld开放端口 firewall-cmd --permanent --add-port=21/tcp firewall-cmd --reload # iptables开放端口 iptables -A INPUT -p tcp --dport 21 -j ACCEPT service iptables save
-
SELinux问题:临时关闭SELinux验证(
setenforce 0),或配置SELinux策略允许FTP服务。
匿名用户无法登录
检查vsftpd.conf中anonymous_enable是否为YES,且/var/ftp目录存在且权限正确(755):
chmod 755 /var/ftp
本地用户无法上传文件
确认write_enable=YES,且用户对目标目录有写权限(chmod 755 /home/test)。
通过以上方法,可全面掌握Linux系统中FTP服务的查看技巧,从安装确认、状态检查、端口监听到配置分析、连接测试和日志排查,系统化的操作流程能有效提升FTP服务的运维效率,确保文件传输服务的稳定运行。


















