温馨提示×

如何配置debian vsftp

小樊
43
2026-09-05 01:35:50
栏目: 智能运维

下面以 Debian 12(Bookworm) 为例,说明如何安装和配置 vsftpd(Very Secure FTP Daemon)。内容涵盖:安装、基础配置、用户权限、被动模式、以及常见问题。


一、安装 vsftpd

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

1️⃣ 基础选项(推荐)

# 禁止匿名登录
anonymous_enable=NO

# 允许本地用户登录
local_enable=YES

# 允许写入
write_enable=YES

# 本地用户 umask
local_umask=022

# 禁止用户离开自己的主目录(FTP jail)
chroot_local_user=YES
allow_writeable_chroot=YES

四、创建 FTP 用户

创建系统用户(仅用于 FTP)

sudo useradd -m ftpuser
sudo passwd ftpuser

限制用户只能 FTP,不能登录系统(可选)

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

六、SELinux(Debian 默认无)

Debian 默认不启用 SELinux,不用担心。


七、重启 vsftpd

sudo systemctl restart vsftpd
sudo systemctl enable vsftpd

八、测试 FTP

本地测试

ftp localhost

远程测试(FileZilla)

  • 主机:服务器IP
  • 协议:FTP
  • 加密:仅明文(或使用 FTPS)
  • 用户名 / 密码:ftpuser

九、可选增强配置

1️⃣ 限制用户列表

userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
echo ftpuser | sudo tee -a /etc/vsftpd.userlist

2️⃣ 启用 FTPS(更安全)

ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

十、常见问题

❌ 530 Login incorrect

  • 用户被锁定
  • /etc/passwd shell 不正确
  • PAM 限制

❌ 500 OOPS: vsftpd: refusing to run with writable root

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

如果你需要:

  • ✅ vsftpd + MySQL 虚拟用户
  • ✅ vsftpd + FTPS
  • ✅ Docker 中运行 vsftpd
  • ✅ 只允许上传不允许下载

可以告诉我你的具体使用场景。

0