在 CentOS 上监控 FTPServer(通常是 vsftpd) 的状态,可以从 服务状态、端口监听、连接情况、日志、性能 等多个方面进行。下面给你一套常用且实用的监控方案。
CentOS 上最常见的 FTP 服务是 vsftpd,先确认:
rpm -qa | grep vsftpd
或
which vsftpd
systemctl status vsftpd
✅ 正常运行应显示:
Active: active (running)
systemctl start vsftpd
systemctl restart vsftpd
systemctl enable vsftpd
ss -lntp | grep :21
或
netstat -lntp | grep :21
✅ 正常应看到 vsftpd 监听
如果是 FTPS,可能还会使用:
ss -lntp | grep -E '21|989|990'
ss -anp | grep vsftpd
或
netstat -anp | grep vsftpd
ss -an | grep :21 | wc -l
who
或
ps -ef | grep vsftpd
常见路径:
/var/log/vsftpd.log
查看实时日志:
tail -f /var/log/vsftpd.log
示例:
CONNECT: Client "192.168.1.10"
OK LOGIN: Client "192.168.1.10"
FAIL LOGIN: Client "192.168.1.10"
grep -E 'ssl|tls' /etc/vsftpd/vsftpd.conf
常见配置:
ssl_enable=YES
force_local_logins_ssl=YES
force_local_data_ssl=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
openssl s_client -connect localhost:21 -starttls ftp
或(隐式 SSL):
openssl s_client -connect localhost:990
top
htop
iostat -x 1
iftop
nload
可监控:
#!/bin/bash
if systemctl is-active vsftpd >/dev/null ; then
echo "vsftpd is running"
else
echo "vsftpd is DOWN"
fi
可加入 cron 定时执行。
| 问题 | 排查命令 |
|---|---|
| FTP 连不上 | `ss -lntp |
| 登录失败 | tail -f /var/log/vsftpd.log |
| SSL 失败 | openssl s_client -connect |
| 被动模式失败 | 检查防火墙 & pasv 配置 |
如果你愿意,我可以:
只要告诉我你的 CentOS 版本 + 是否使用 FTPS 即可。