在 Debian 上配置 vsftpd(Very Secure FTP Daemon) 并设置 FTP 用户,一般包括以下几个步骤:安装、配置、创建/设置用户、权限控制和测试。下面给你一个常用且安全的配置示例。
sudo apt update
sudo apt install vsftpd
安装完成后,服务会自动启动:
sudo systemctl status vsftpd
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
sudo nano /etc/vsftpd.conf
# 启用本地用户登录
local_enable=YES
# 允许上传
write_enable=YES
# 本地用户限制在家目录
chroot_local_user=YES
# 允许写 chroot(Debian 必须)
allow_writeable_chroot=YES
# 禁止匿名登录
anonymous_enable=NO
# 日志
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
# 被动模式(建议开启)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
保存后重启服务:
sudo systemctl restart vsftpd
sudo adduser ftpuser
设置密码:
sudo passwd ftpuser
sudo mkdir -p /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp
sudo chmod 755 /home/ftpuser
⚠️ 注意:
chroot_local_user=YES时,家目录不能有写权限
所以通常把可写目录放在ftp/下
如果你只希望用户使用 FTP,而不能 SSH 登录:
sudo usermod -s /usr/sbin/nologin ftpuser
确保 /etc/shells 中包含:
/usr/sbin/nologin
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp
ftp localhost
或使用工具:
/etc/shells 不包含用户的 shell/etc/ftpusers 禁止登录查看是否被限制:
cat /etc/ftpusers
解决方法:
allow_writeable_chroot=YES
或确保家目录不可写,子目录可写。
如果你需要 多个 FTP 用户但不创建系统用户,可以使用:
如果你需要,我可以单独给你虚拟用户配置教程。
✅ 最简单方案:
local_enable=YES如果你告诉我:
我可以帮你定制一套更合适的配置。