监控 Ubuntu 上的 FTPServer(通常指 vsftpd、ProFTPD 或 Pure-FTPd) 可以从服务状态、连接情况、日志、性能、安全几个层面来做。下面以 vsftpd(最常见) 为主,同时给出通用方案。
systemctl status vsftpd
或
ps aux | grep ftp
启动 / 重启:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
netstat -anp | grep :21
# 或
ss -antp | grep :21
vsftpd 本身不提供内置命令,可通过日志或进程查看:
ps aux | grep vsftpd
如果是 ProFTPD:
ftpwho
常见路径:
/var/log/vsftpd.log
/var/log/syslog
查看实时日志:
tail -f /var/log/vsftpd.log
搜索登录记录:
grep "OK LOGIN" /var/log/vsftpd.log
grep "FAIL" /var/log/vsftpd.log
编辑配置文件:
sudo nano /etc/vsftpd.conf
确保:
xferlog_enable=YES
log_ftp_protocol=YES
重启:
sudo systemctl restart vsftpd
top
htop
iftop
或
nload
iotop
grep pasv_ /etc/vsftpd.conf
例如:
pasv_min_port=30000
pasv_max_port=31000
ss -ant | grep 3000
防火墙确认:
ufw status
sudo apt install fail2ban
示例 jail 配置:
[vsftpd]
enabled = true
port = ftp,ftp-data,ftps,ftps-data
filter = vsftpd
logpath = /var/log/vsftpd.log
maxretry = 5
bantime = 3600
fail2ban-client status vsftpd
| 目的 | 工具 |
|---|---|
| 实时日志 | tail / journalctl |
| 安全 | fail2ban |
| 性能 | netdata / zabbix |
| 长期统计 | ELK / Grafana + Loki |
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
浏览器访问:
http://服务器IP:19999
openssl x509 -in /etc/ssl/certs/ftp.pem -noout -dates
tcpdump -i eth0 port 21
如果你愿意,可以告诉我:
我可以给你一套完整监控脚本 + 报警方案。