温馨提示×

FTPServer在CentOS怎么配置

小樊
39
2026-07-20 13:24:16
栏目: 智能运维

CentOS 上配置 FTPServer(FTP 服务器),常见做法是使用 vsftpd(Very Secure FTP Daemon)。下面我按 最常用、最稳定 的方式,一步一步给你说明,适用于 CentOS 7 / 8 / Stream


一、安装 vsftpd

sudo yum install -y vsftpd

CentOS 8 / Stream 用:

sudo dnf install -y vsftpd

二、启动并设置开机自启

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

查看状态:

systemctl status vsftpd

三、配置 vsftpd(核心)

配置文件路径:

/etc/vsftpd/vsftpd.conf

先备份:

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

编辑:

sudo vi /etc/vsftpd/vsftpd.conf

✅ 常用基础配置(推荐)

# 禁止匿名登录
anonymous_enable=NO

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

# 允许上传
write_enable=YES

# 本地用户限制在家目录
chroot_local_user=YES

# 允许写 chroot(CentOS 重要)
allow_writeable_chroot=YES

# 监听 IPv4
listen=YES

# 关闭 IPv6
listen_ipv6=NO

四、创建 FTP 用户(示例)

sudo useradd -m ftpuser
sudo passwd ftpuser

设置家目录(可选):

usermod -d /home/ftpuser ftpuser

五、防火墙放行 FTP 端口

1️⃣ 放行 21 端口

sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --reload

2️⃣ 放行被动模式端口(推荐)

编辑配置:

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

防火墙放行:

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

六、SELinux 配置(非常重要)

CentOS 默认开启 SELinux,不配置会导致 能登录但不能上传

查看状态

getenforce

允许 FTP 访问家目录

sudo setsebool -P ftp_home_dir on

如果仍不行,可临时测试:

sudo setenforce 0

⚠️ 生产环境不建议永久关闭 SELinux


七、重启 vsftpd

sudo systemctl restart vsftpd

八、测试 FTP

本地测试

ftp localhost

客户端工具

  • FileZilla
  • WinSCP
  • lftp

九、常见问题排查

❌ 能登录但不能上传

  • SELinux 未放行
  • 目录权限不足
  • write_enable=YES 未开启

❌ 530 Login incorrect

  • 用户被 /etc/vsftpd/user_listftpusers 限制
  • 密码错误

❌ 425 Failed to establish connection

  • 被动端口未放行
  • 防火墙问题

十、进阶(可选)

FTPS(FTP over SSL)
虚拟用户
限制用户带宽
日志审计

如果你需要 FTPS(加密)虚拟用户配置,告诉我你的 CentOS 版本,我可以给你完整配置示例。

0