温馨提示×

怎么在CentOS启FTPServer

小樊
41
2026-07-20 13:46:12
栏目: 智能运维

CentOS 上启用 FTP 服务器(FTPServer),通常使用的是 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

看到 active (running) 即成功。


三、配置防火墙(非常重要)

1️⃣ 开放 FTP 端口(21)

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

2️⃣ 如果是被动模式(推荐)

编辑配置文件:

sudo vi /etc/vsftpd/vsftpd.conf

添加或修改:

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

然后防火墙放行:

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

四、基本 FTP 配置(允许本地用户登录)

编辑配置文件:

sudo vi /etc/vsftpd/vsftpd.conf

推荐基础配置:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
allow_writeable_chroot=YES

重启服务:

sudo systemctl restart vsftpd

五、创建 FTP 用户(示例)

sudo useradd ftpuser
sudo passwd ftpuser

设置用户只能 FTP,不能 SSH 登录(可选):

sudo usermod -s /sbin/nologin ftpuser

六、SELinux 设置(常见问题)

如果连不上或无法上传:

查看状态

getenforce

允许 FTP

sudo setsebool -P ftp_home_dir on
sudo setsebool -P allow_ftpd_full_access on

七、测试 FTP

本地测试

ftp localhost

或使用 FileZilla / WinSCP

  • 协议:FTP
  • 主机:服务器 IP
  • 端口:21
  • 用户 / 密码:刚创建的

八、常见错误排查

问题 原因
连接超时 防火墙未放行
530 Login incorrect 用户名/密码错误
500 OOPS SELinux 限制
无法上传 write_enable=NO

九、是否需要 FTPS(FTP over SSL)

如果你指的是 加密 FTP(FTPS),我也可以帮你配置 SSL/TLS,安全性更高。


✅ 总结

  • 安装:vsftpd
  • 启动:systemctl start vsftpd
  • 防火墙 + SELinux 是关键
  • 推荐被动模式

如果你告诉我:

  • CentOS 版本
  • 是否需要 加密(FTPS)
  • 是否用于 公网 / 内网

我可以给你一份 定制配置方案

0