在 Ubuntu 上监控 FTP 服务器(如 vsftpd、proftpd、pure-ftpd),可以从连接状态、日志、流量、进程、用户行为等多个层面来做。下面按常用 FTP 服务和监控方式给你一个完整说明。
ps -ef | grep -E "vsftpd|proftpd|pure-ftpd"
或:
systemctl status vsftpd
systemctl status proftpd
systemctl status pure-ftpd
编辑:
sudo vim /etc/vsftpd.conf
确保:
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
log_ftp_protocol=YES # 调试用,生产环境慎用
重启:
sudo systemctl restart vsftpd
tail -f /var/log/vsftpd.log
grep -E "OK|FAIL" /var/log/vsftpd.log
日志位置:
/var/log/proftpd/access.log
/var/log/proftpd/auth.log
实时监控:
tail -f /var/log/proftpd/access.log
/var/log/syslog
过滤:
grep pure-ftpd /var/log/syslog
netstat -anp | grep :21
或(推荐):
ss -tnp | grep :21
示例输出:
ESTAB 0 0 192.168.1.10:21 192.168.1.100:54321 users:(("vsftpd",pid=1234))
ps -ef | grep vsftpd
或:
lsof -i :21
sudo apt install iftop
sudo iftop -i eth0
只看 FTP 端口:
sudo iftop -i eth0 -P
sudo apt install nethogs
sudo nethogs
可以看到哪个 FTP 进程在占用带宽。
开启:
log_ftp_protocol=YES
日志会记录:
⚠️ 日志量大,不建议长期开启。
sudo apt install auditd
监控 FTP 目录:
sudo auditctl -w /srv/ftp -p rwxa -k ftp_monitor
查看日志:
ausearch -k ftp_monitor
htop
查看 vsftpd / proftpd 进程资源占用。
方式:
grep "FAIL" /var/log/vsftpd.log | wc -l
可配合 fail2ban:
sudo apt install fail2ban
#!/bin/bash
COUNT=$(grep "FAIL" /var/log/vsftpd.log | tail -100 | wc -l)
if [ $COUNT -gt 10 ]; then
echo "FTP 登录异常" | mail -s "FTP Alert" admin@example.com
fi
| 场景 | 推荐方式 |
|---|---|
| 快速排查 | ss + tail -f log |
| 日常运维 | 日志 + fail2ban |
| 流量分析 | iftop / nethogs |
| 企业级 | Prometheus + Grafana |
| 安全审计 | auditd |
你可以告诉我:
我可以直接给你 定制监控方案或脚本。