在 Linux 上配置 FTP Server(以 vsftpd 为例) 是比较常见且稳定的做法。下面我分 安装 → 配置 → 用户管理 → 测试 → 常见问题 给你一个完整流程,适用于 CentOS / Rocky / Alma / RHEL / Ubuntu / Debian。
yum install -y vsftpd
# 或
dnf 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
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
编辑配置文件:
vim /etc/vsftpd/vsftpd.conf
# 禁止匿名登录
anonymous_enable=NO
# 允许本地用户登录
local_enable=YES
# 允许上传
write_enable=YES
# 本地用户 umask
local_umask=022
# 禁止用户切换到根目录以外
chroot_local_user=YES
# 允许 chroot 目录可写(新版 vsftpd 必须)
allow_writeable_chroot=YES
# 启动被动模式(推荐)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
useradd -m ftpuser
passwd ftpuser
mkdir -p /data/ftp
chown ftpuser:ftpuser /data/ftp
usermod -s /sbin/nologin 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
setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on
查看状态:
getenforce
systemctl restart vsftpd
ftp localhost
如果你说的是 FTPS(FTP over SSL),而不是 SFTP,我可以单独给你一份 SSL 证书 + vsftpd FTPS 配置。
/sbin/nologin 但 /etc/shells 未包含allow_writeable_chroot=YES
你可以告诉我:
我可以直接给你 一份可直接用的完整配置文件。