使用systemctl命令(CentOS 7及以上默认采用systemd管理服务),可快速确认VSFTP服务的启动状态、运行时间及最近日志:
sudo systemctl status vsftpd
若服务正常运行,输出中会显示“active (running)”;若未运行,可使用sudo systemctl start vsftpd启动服务。
VSFTP默认使用21端口(控制连接),通过netstat(传统工具)或ss(更高效的替代工具)查看端口监听状态:
sudo netstat -tuln | grep ':21' # 显示TCP监听端口
sudo ss -tuln | grep ':21' # 更简洁的输出,推荐使用
若端口处于“LISTEN”状态,说明VSFTP已正常监听FTP连接。
日志是监控服务活动的核心依据,VSFTP的日志路径通常为:
/var/log/messages(默认包含vsftpd基本日志)/var/log/xferlog(记录文件上传/下载详情,需提前启用)使用tail命令实时查看最新日志:
sudo tail -f /var/log/messages | grep vsftpd # 过滤vsftpd相关日志
sudo tail -f /var/log/xferlog # 查看传输日志(需配置启用)
若日志未启用,需编辑/etc/vsftpd/vsftpd.conf,添加以下配置:
xferlog_enable=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
修改后重启服务生效:sudo systemctl restart vsftpd。
iftop可实时显示通过21端口的FTP流量,按IP地址排序,快速识别高流量客户端:
sudo yum install iftop -y # 安装iftop
sudo iftop -i any -f "port 21" # 监控所有接口的21端口流量
输出中会显示客户端IP、传输速率及累计流量。
tcpdump可捕获FTP流量的详细内容(如用户名、密码、文件名),适合调试或安全审计:
sudo tcpdump -i any -n -v port 21 # 监听所有接口的21端口流量
按Ctrl+C停止捕获,输出中会显示数据包的源/目标地址、端口及内容摘要。
通过grep、awk等工具分析/var/log/xferlog,获取上传/下载次数、文件大小、客户端IP等统计信息:
# 统计今日上传文件总数
sudo grep "$(date '+%b %d')" /var/log/xferlog | grep 'STOR' | wc -l
# 统计今日下载流量(单位:字节)
sudo grep "$(date '+%b %d')" /var/log/xferlog | grep 'RETR' | awk '{sum += $10} END {print sum}'
若需更复杂的分析(如生成报表),可使用logwatch工具自动生成每日日志摘要:
sudo yum install logwatch -y
sudo logwatch --service ftp --output mail # 发送日志摘要到邮箱
Monitorix可监控VSFTP的性能指标(如连接数、传输速率、端口状态),并通过Web界面展示:
sudo yum install epel-release -y
sudo yum install monitorix -y
sudo systemctl start monitorix
sudo systemctl enable monitorix
访问http://服务器IP:8080/monitorix,查看“FTP”相关图表。
vsftpd_exporter工具导出);auditd可记录VSFTP的系统调用(如文件访问、权限变更),适合安全合规场景:
sudo yum install audit -y
sudo systemctl start auditd
sudo systemctl enable auditd
添加审计规则(监控vsftpd的关键操作):
sudo auditctl -a exit,always -F arch=b64 -S open,read,write -F path=/var/ftp -k vsftpd_file_access
查看审计日志:
sudo ausearch -k vsftpd_file_access