在 CentOS 上开启 FTP 服务器日志,取决于你使用的是 vsftpd(最常见)还是 ProFTPD / Pure-FTPd。下面以 vsftpd 为主详细说明,其他也一并给你。
vim /etc/vsftpd/vsftpd.conf
确保有以下配置(没有就加上):
# 启用上传/下载日志
xferlog_enable=YES
# 使用标准 xferlog 格式
xferlog_std_format=YES
# 日志文件路径(默认即可)
xferlog_file=/var/log/xferlog
# 启用 vsftpd 自身日志(推荐)
log_ftp_protocol=YES
⚠️ 注意:
log_ftp_protocol=YES 会记录非常详细的日志(包括命令),仅建议调试时开启systemctl restart vsftpd
tail -f /var/log/xferlog
示例:
Thu Aug 22 10:01:23 2024 1 192.168.1.10 102400 /home/ftp/test.txt b _ o r user ftp 0 * c
tail -f /var/log/vsftpd.log
vim /etc/proftpd.conf
启用日志:
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log
重启:
systemctl restart proftpd
/usr/sbin/pure-ftpd -O clf:/var/log/pureftpd.log
或 systemd 修改启动参数。
如果日志不生成,可能是 SELinux 限制:
getenforce
如果是 Enforcing,可临时测试:
setenforce 0
永久解决(推荐):
semanage fcontext -a -t ftpd_log_t "/var/log/vsftpd.log"
restorecon -v /var/log/vsftpd.log
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
log_ftp_protocol=NO
如果你愿意,可以告诉我:
我可以给你一份完全贴合你环境的配置。