温馨提示×

centos ftpserver怎样排错

小樊
40
2026-09-27 05:07:56
栏目: 智能运维

在 CentOS 上排查 FTP Server(通常是 vsftpd) 问题,可以按下面步骤系统性排错。


一、确认 FTP 服务是否安装并运行

1. 检查是否安装 vsftpd

rpm -qa | grep vsftpd

或

which vsftpd

2. 查看服务状态

systemctl status vsftpd

若未启动:

systemctl start vsftpd
systemctl enable vsftpd

二、检查防火墙(最常见问题)

1. firewalld

firewall-cmd --list-all

放行 FTP:

firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload

⚠️ 若使用 被动模式(PASV),还需放行被动端口范围(见下文)


三、SELinux 问题(CentOS 特有高频坑)

1. 查看 SELinux 状态

getenforce

2. 临时关闭测试

setenforce 0

如果关闭后能连,说明是 SELinux 限制。

3. 正确做法(推荐)

setsebool -P ftpd_full_access on

若 FTP 目录不是 /var/ftp:

semanage fcontext -a -t public_content_t "/data/ftp(/.*)?"
restorecon -Rv /data/ftp

四、vsftpd 配置检查

配置文件:

/etc/vsftpd/vsftpd.conf

常见问题配置

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_min_port=30000
pasv_max_port=31000

修改后重启:

systemctl restart vsftpd

五、被动模式(PASV)端口问题

1. 配置被动端口

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

2. 防火墙放行

firewall-cmd --add-port=30000-31000/tcp --permanent
firewall-cmd --reload

六、查看日志定位问题

1. vsftpd 日志

tail -f /var/log/vsftpd.log

(若未开启,在配置中加:)

xferlog_enable=YES

2. 系统日志

journalctl -u vsftpd -f

七、客户端连接测试

本地测试

ftp localhost

被动模式测试

ftp -p ip_address

八、常见错误速查表

现象 原因
能连但不能列目录 防火墙 / PASV 端口
530 Login incorrect 用户被禁 / PAM 问题
500 OOPS: chroot chroot 目录权限
访问被拒 SELinux
超时 被动端口未放行

如果你愿意,可以把 具体报错信息 / vsftpd.conf / CentOS 版本 发出来,我可以直接帮你精确定位。

0 踩