下面给你一份 CentOS 下 vsftpd 常用配置指南(以 CentOS 7/8 为例,CentOS 6 也基本通用)。
yum install -y vsftpd
启动并设置开机自启:
systemctl start vsftpd
systemctl enable vsftpd
查看状态:
systemctl status vsftpd
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
如果是被动模式还需开放端口范围(后面配置)。
setsebool -P ftpd_full_access on
如遇到家目录无法访问:
setsebool -P ftp_home_dir on
配置文件位置:
/etc/vsftpd/vsftpd.conf
anonymous_enable=YES
anon_root=/var/ftp
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
allow_writeable_chroot=YES
CentOS 7+ 必须加
allow_writeable_chroot=YES,否则登录失败
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
防火墙开放端口:
firewall-cmd --permanent --add-port=30000-31000/tcp
firewall-cmd --reload
useradd ftpuser
passwd ftpuser
限制只能 FTP,不能登录系统(可选):
usermod -s /sbin/nologin ftpuser
适合多用户、权限隔离场景。
步骤简述:
如你需要,我可以单独写一份 vsftpd 虚拟用户完整配置教程。
ftp localhost
或用 FileZilla / Windows 资源管理器。
| 问题 | 原因 |
|---|---|
| 530 Login incorrect | PAM / 用户 shell 问题 |
| 500 OOPS chroot | 没加 allow_writeable_chroot |
| 被动模式连不上 | 防火墙未开 PASV 端口 |
| 上传失败 | write_enable / SELinux |
如果你能告诉我:
我可以给你 一套可直接复制使用的完整配置。