监控Ubuntu FTP运行状态需从服务状态、端口监听、进程活动、日志分析、网络流量及远程连接等多维度展开,以下是具体方法:
Ubuntu使用systemd管理服务,可通过以下命令查看FTP服务(如vsftpd、proftpd)的运行状态、启动时间、日志摘要及错误信息:
sudo systemctl status vsftpd # 若使用vsftpd,替换为对应服务名(如proftpd)
若服务未运行,可使用sudo systemctl start vsftpd启动;需设置开机自启则执行sudo systemctl enable vsftpd。
FTP默认使用21端口(主动模式),需确认服务是否在监听该端口,避免因端口未开放导致连接失败:
sudo netstat -tuln | grep :21 # 传统工具,显示TCP/UDP监听端口
# 或使用更高效的ss命令
sudo ss -tuln | grep :21
若输出中包含0.0.0.0:21(监听所有IP)或127.0.0.1:21(仅本地访问),则说明端口正常监听。
通过lsof或ps命令查看FTP进程是否运行,确认服务是否实际在工作:
sudo lsof -i :21 # 列出占用21端口的进程(包括进程ID、用户、程序名)
# 或使用ps命令过滤FTP进程
sudo ps aux | grep -E 'vsftpd|proftpd' # 替换为对应的FTP服务名
若有输出且进程状态为RUNNING,则说明FTP服务正在运行。
日志是监控FTP活动的核心依据,可实时查看连接、登录、文件传输等记录,快速定位问题:
/var/log/vsftpd.log(需确认/etc/vsftpd.conf中xferlog_enable=YES);/var/log/proftpd/proftpd.log。tail命令实时跟踪日志更新:sudo tail -f /var/log/vsftpd.log # 替换为对应的日志文件路径
日志中常见关键词:connected(成功连接)、login failed(登录失败)、download/upload(文件传输)。
使用tcpdump捕获FTP端口的流量,分析数据包内容(如连接请求、响应),排查网络层问题(如丢包、延迟):
sudo tcpdump -i eth0 port 21 -nn # 替换eth0为实际网络接口(如ens33)
常用选项:-i指定接口,-nn禁用域名/IP解析(提升速度),-w ftp.pcap将流量保存到文件(后续用Wireshark分析)。
使用FTP客户端(如ftp命令、FileZilla)手动连接服务器,验证服务是否可正常访问:
ftp localhost # 本地测试
输入用户名和密码后,尝试执行ls(列出目录)、get(下载文件)、put(上传文件)等命令,确认连接及操作是否正常。
若需自动化、可视化监控(如实时告警、历史趋势),可使用以下工具:
ftp_exporter采集FTP指标,用Grafana创建仪表盘展示状态(如活跃连接数、带宽使用率)。以上方法覆盖了FTP运行的核心监控需求,可根据实际场景选择合适的方式(如简单排查用systemctl+tail,自动化监控用Prometheus+Grafana)。