温馨提示×

FTPServer如何在CentOS部署

小樊
35
2026-07-20 13:45:14
栏目: 智能运维

CentOS 上部署 FTP 服务器,最常用的是 vsftpd(Very Secure FTP Daemon)。下面给你一套从安装到可用的完整流程,适用于 CentOS 7 / 8 / Stream


一、安装 vsftpd

# CentOS 7
yum install -y vsftpd

# CentOS 8 / Stream
dnf install -y vsftpd

二、启动并设置开机自启

systemctl start vsftpd
systemctl enable vsftpd

查看状态:

systemctl status vsftpd

三、配置 vsftpd(核心)

配置文件路径:

/etc/vsftpd/vsftpd.conf

1️⃣ 备份原配置

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

2️⃣ 常用推荐配置(示例)

编辑配置:

vim /etc/vsftpd/vsftpd.conf

✅ 基础安全配置

# 禁止匿名登录
anonymous_enable=NO

# 允许本地用户登录
local_enable=YES

# 允许上传
write_enable=YES

# 本地用户 umask
local_umask=022

# 禁止用户切换到根目录
chroot_local_user=YES

# 允许 chroot 目录可写(CentOS 7+ 必须)
allow_writeable_chroot=YES

✅ 被动模式(推荐,云服务器必开)

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

⚠️ 被动端口范围需要在 防火墙 & 安全组 放行


四、创建 FTP 用户

1️⃣ 创建用户

useradd ftpuser
passwd ftpuser

2️⃣ 设置 FTP 目录

mkdir -p /data/ftp
chown ftpuser:ftpuser /data/ftp

3️⃣ 限制用户只能通过 FTP 登录(可选)

usermod -s /sbin/nologin ftpuser

五、防火墙配置

1️⃣ 开放 FTP 端口

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

六、SELinux 配置(常见问题)

查看状态

getenforce

如果是 Enforcing,允许 FTP

setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on

七、重启 vsftpd

systemctl restart vsftpd

八、测试 FTP

本地测试

ftp localhost

远程测试

ftp 服务器IP

或使用工具:

  • FileZilla
  • WinSCP
  • lftp

九、常见问题排查

❌ 530 Login incorrect

  • 用户名/密码错误
  • SELinux 限制
  • shell 被禁止(/sbin/nologin

❌ 无法连接

  • 防火墙未放行
  • 云服务器安全组未放行 21 / 30000–31000

❌ 上传失败

chmod 755 /data/ftp

十、进阶(可选)

✅ 虚拟用户
✅ FTPS(FTP over SSL)
✅ 限速、并发控制
✅ 日志审计

如果你需要 FTPS(SSL)虚拟用户配置,告诉我你的 CentOS 版本 + 使用场景(内网 / 公网 / 云服务器),我可以给你定制方案。

0