下面以 Debian 12(Bookworm) 为例,说明如何安装和配置 vsftpd(Very Secure FTP Daemon)。内容涵盖:安装、基础配置、用户权限、被动模式、以及常见问题。
sudo apt update
sudo apt install vsftpd -y
安装完成后,服务会自动注册:
sudo systemctl status vsftpd
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
编辑配置文件:
sudo nano /etc/vsftpd.conf
# 禁止匿名登录
anonymous_enable=NO
# 允许本地用户登录
local_enable=YES
# 允许写入
write_enable=YES
# 本地用户 umask
local_umask=022
# 禁止用户离开自己的主目录(FTP jail)
chroot_local_user=YES
allow_writeable_chroot=YES
sudo useradd -m ftpuser
sudo passwd ftpuser
sudo usermod -s /usr/sbin/nologin ftpuser
如果你使用 云服务器 / 防火墙,必须配置被动端口。
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
然后在防火墙开放:
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp
Debian 默认不启用 SELinux,不用担心。
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
ftp localhost
服务器IPuserlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
echo ftpuser | sudo tee -a /etc/vsftpd.userlist
ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
/etc/passwd shell 不正确allow_writeable_chroot=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
如果你需要:
可以告诉我你的具体使用场景。