在 Debian 上使用 vsftpd(Very Secure FTP Daemon) 设置用户,通常分为 系统用户 和 虚拟用户 两种。下面给你一个从零到可用的常用配置示例(以 系统用户 + 本地目录 为主,最简单也最稳定)。
sudo apt update
sudo apt install vsftpd
安装完成后服务会自动启动:
sudo systemctl status vsftpd
sudo useradd -m ftpuser
sudo passwd ftpuser
sudo usermod -s /usr/sbin/nologin ftpuser
编辑配置文件:
sudo nano /etc/vsftpd.conf
# 基本设置
listen=YES
listen_ipv6=NO
# 禁止匿名登录
anonymous_enable=NO
# 允许本地用户登录
local_enable=YES
# 允许上传
write_enable=YES
# 本地用户权限掩码
local_umask=022
# 限制用户只能访问自己的家目录(重要)
chroot_local_user=YES
# 允许写 chroot(Debian 必须)
allow_writeable_chroot=YES
# 日志
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
# 禁止用户列表
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist
只有在这个文件里的用户才能登录
/home/ftpuser
sudo mkdir -p /data/ftp
sudo chown ftpuser:ftpuser /data/ftp
sudo usermod -d /data/ftp ftpuser
sudo systemctl restart vsftpd
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
如果是云服务器,还需要放行 被动模式端口(见下)。
在 /etc/vsftpd.conf 中添加:
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
防火墙放行:
sudo ufw allow 30000:31000/tcp
ftp your_server_ip
或使用 FileZilla:
/etc/pam.d/vsftpd)allow_writeable_chroot=YES
如果你需要:
可以告诉我你的使用场景,我可以给你 完整虚拟用户方案 或 FTPS 配置。
需要我帮你检查当前配置吗?