温馨提示×

centos vsftp怎样配置

小樊
50
2026-09-29 22:04:03
栏目: 智能运维

下面给你一份 CentOS 下 vsftpd 常用配置指南(以 CentOS 7/8 为例,CentOS 6 也基本通用)。


一、安装 vsftpd

yum install -y vsftpd

启动并设置开机自启:

systemctl start vsftpd
systemctl enable vsftpd

查看状态:

systemctl status vsftpd

二、防火墙与 SELinux

1. 防火墙(FTP 端口)

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

如果是被动模式还需开放端口范围(后面配置)。

2. SELinux(很重要)

setsebool -P ftpd_full_access on

如遇到家目录无法访问:

setsebool -P ftp_home_dir on

三、核心配置文件

配置文件位置:

/etc/vsftpd/vsftpd.conf

四、常见配置示例

1. 匿名用户(不推荐生产环境)

anonymous_enable=YES
anon_root=/var/ftp

2. 本地用户登录(最常用)

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022

3. 限制用户只能访问自己家目录(chroot)

chroot_local_user=YES
allow_writeable_chroot=YES

CentOS 7+ 必须加 allow_writeable_chroot=YES,否则登录失败


五、被动模式(PASV,推荐)

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

防火墙开放端口:

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

六、创建 FTP 用户

useradd ftpuser
passwd ftpuser

限制只能 FTP,不能登录系统(可选):

usermod -s /sbin/nologin ftpuser

七、虚拟用户(进阶,安全推荐)

适合多用户、权限隔离场景。

步骤简述:

  1. 创建用户密码文件
  2. 生成 db 文件
  3. 配置 PAM
  4. 在 vsftpd.conf 中启用虚拟用户

如你需要,我可以单独写一份 vsftpd 虚拟用户完整配置教程。


八、测试 FTP

ftp localhost

或用 FileZilla / Windows 资源管理器。


九、常见问题速查

问题 原因
530 Login incorrect PAM / 用户 shell 问题
500 OOPS chroot 没加 allow_writeable_chroot
被动模式连不上 防火墙未开 PASV 端口
上传失败 write_enable / SELinux

如果你能告诉我:

  • CentOS 版本
  • 是否用匿名 / 本地 / 虚拟用户
  • 是否公网 / 云服务器

我可以给你 一套可直接复制使用的完整配置。

0 踩