在 CentOS 上启用 FTP 服务器(FTPServer),通常使用的是 vsftpd(Very Secure FTP Daemon)。下面我按 最常用、稳定、安全 的方式一步步说明,适用于 CentOS 7 / 8 / Stream。
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) 即成功。
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --reload
编辑配置文件:
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
编辑配置文件:
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
sudo useradd ftpuser
sudo passwd ftpuser
设置用户只能 FTP,不能 SSH 登录(可选):
sudo usermod -s /sbin/nologin ftpuser
如果连不上或无法上传:
getenforce
sudo setsebool -P ftp_home_dir on
sudo setsebool -P allow_ftpd_full_access on
ftp localhost
| 问题 | 原因 |
|---|---|
| 连接超时 | 防火墙未放行 |
| 530 Login incorrect | 用户名/密码错误 |
| 500 OOPS | SELinux 限制 |
| 无法上传 | write_enable=NO |
如果你指的是 加密 FTP(FTPS),我也可以帮你配置 SSL/TLS,安全性更高。
vsftpdsystemctl start vsftpd如果你告诉我:
我可以给你一份 定制配置方案 ✅