配置 Linux FTP 服务器常见有两种主流方案:vsftpd(最常用、安全) 和 Pure-FTPd。下面以 vsftpd 为例,给你一个从安装到可用、再到安全加固的完整配置流程(适用于 CentOS / Rocky / Alma / RHEL / Ubuntu / Debian)。
yum install -y vsftpd
apt update
apt install -y vsftpd
systemctl start vsftpd
systemctl enable vsftpd
查看状态:
systemctl status vsftpd
编辑配置文件:
vim /etc/vsftpd/vsftpd.conf
# 禁止匿名登录
anonymous_enable=NO
# 允许本地用户登录
local_enable=YES
# 允许上传
write_enable=YES
# 本地用户 umask
local_umask=022
# 禁止 chroot 目录可写(重要)
allow_writeable_chroot=YES
# 限制用户只能访问自己的家目录
chroot_local_user=YES
# 启用被动模式(云服务器必须)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
useradd -m ftpuser
passwd ftpuser
chown ftpuser:ftpuser /home/ftpuser
chmod 755 /home/ftpuser
firewall-cmd --permanent --add-service=ftp
firewall-cmd --permanent --add-port=30000-31000/tcp
firewall-cmd --reload
ufw allow 21/tcp
ufw allow 30000:31000/tcp
ufw reload
查看状态:
getenforce
如果是 Enforcing,需要放行 FTP:
setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on
systemctl restart vsftpd
ftp localhost
ftp 服务器IP
或使用工具:
/etc/pam.d/vsftpd)pasv_addresspasv_address=公网IP
✅ 禁止 root 登录
✅ 使用 SFTP(SSH) 替代 FTP(更安全)
✅ 限制用户列表
✅ 使用 TLS 加密(FTPS)
如果你需要 加密 FTP(TLS),我可以单独给你一份配置方案。
| 项目 | 推荐 |
|---|---|
| FTP 服务 | vsftpd |
| 模式 | 被动模式 |
| 用户 | 本地用户 |
| 安全 | chroot + 防火墙 + SELinux |
| 生产 | 更推荐 SFTP |
如果你告诉我:
我可以给你 完全贴合你环境的配置方案。