核心三步:装服务(yum install -y vsftpd)、配规则(修改vsftpd.conf禁匿名、开本地登录、启用chroot等)、开通道(放行防火墙ftp服务、处理SELinux权限);完成后创建用户并设目录权限,即可安全使用FTP。

直接在 Linux 上用 vsftpd 搭建 FTP 服务器,核心就三步:装服务、配规则、开通道。它不依赖图形界面,命令清晰,适合内网共享、设备对接或临时分发大文件。重点不是“能不能通”,而是“谁可以传、传到哪、有没有锁住”。
安装与基础启动
以 CentOS 7/8 或 RHEL 系统为例:
- 运行 yum install -y vsftpd 安装服务;确认成功可用 rpm -q vsftpd
- 启动并设为开机自启:systemctl start vsftpd && systemctl enable vsftpd
- 此时服务已运行,但默认配置是全关闭状态(匿名关、本地用户关、写权限关),不能直接登录
关键配置项说明
编辑 /etc/vsftpd/vsftpd.conf,以下几项决定基本行为:
- anonymous_enable=NO:禁用匿名访问,避免未授权下载
- local_enable=YES:允许系统本地用户(如 root、testuser)通过账号密码登录
- write_enable=YES:开启上传、删改等写操作权限
- chroot_local_user=YES:把用户限制在其主目录内,防止越权浏览系统路径
- allow_writeable_chroot=YES:配合 chroot 使用,否则用户主目录若可写,vsftpd 会拒绝登录
改完配置后必须执行 systemctl restart vsftpd 生效。
防火墙与 SELinux 处理
很多连不上问题其实卡在这两关:
- 防火墙需放行 FTP 服务:firewall-cmd --permanent --add-service=ftp && firewall-cmd --reload
- SELinux 默认会阻止 vsftpd 访问用户目录,临时关闭用 setenforce 0;永久关闭需修改 /etc/selinux/config 中的 SELINUX=disabled 并重启
- 若不能关 SELinux,可用 setsebool -P ftp_home_dir on 开启家目录访问权限
用户与目录权限实操
以新建普通用户 ftpuser 为例:
- 创建用户:adduser ftpuser && passwd ftpuser
- 设置其 FTP 根目录(推荐用主目录):mkdir -p /home/ftpuser/ftp/upload && chown -R ftpuser:ftpuser /home/ftpuser/ftp
- 确保目录权限合理:chmod 750 /home/ftpuser/ftp && chmod 750 /home/ftpuser/ftp/upload
- 如需禁止该用户 SSH 登录,只留 FTP,可执行:usermod -s /sbin/nologin ftpuser
客户端用 FileZilla 或命令行 ftp server_ip 输入账号密码即可连接测试上传下载。

















