搭建 Linux FTP 服务一般使用 vsftpd(Very Secure FTP Daemon),它稳定、安全、配置简单,是大多数 Linux 发行版的默认选择。下面以 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
配置文件路径:
/etc/vsftpd/vsftpd.conf # CentOS/RHEL
/etc/vsftpd.conf # Ubuntu
编辑配置:
vim /etc/vsftpd/vsftpd.conf
# 禁止匿名登录
anonymous_enable=NO
# 允许本地用户登录
local_enable=YES
# 允许上传
write_enable=YES
# 本地用户限制在家目录
chroot_local_user=YES
# 允许写 chroot(必须)
allow_writeable_chroot=YES
# 被动模式(推荐)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
保存后重启:
systemctl restart vsftpd
useradd ftpuser
passwd ftpuser
设置家目录(可选):
usermod -d /data/ftp ftpuser
设置权限:
chown -R ftpuser:ftpuser /data/ftp
chmod 755 /data/ftp
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
如果登录失败,可能是 SELinux 限制:
setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on
ftp localhost
ftp / lftp如果你不想创建系统用户,可以使用:
我可以单独给你一份 虚拟用户配置教程。
| 问题 | 原因 |
|---|---|
| 530 Login incorrect | 用户名/密码错误或被 PAM 限制 |
| 500 OOPS: chroot | 目录权限不对 |
| 连接超时 | 防火墙 / 被动端口未开放 |
| 无法上传 | write_enable=NO |
如果你愿意,可以告诉我:
我可以给你一份 完全贴合你环境的配置方案。