温馨提示×

debian如何配置vsftp

小樊
39
2026-09-07 23:54:15
栏目: 智能运维

下面给你一份**在 Debian 上配置 vsftpd(FTP 服务器)**的常用实用指南,从安装到常见配置、用户权限、被动模式等。


一、安装 vsftpd

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

三、基础安全配置(推荐)

1. 禁止匿名登录

anonymous_enable=NO

2. 允许本地用户登录

local_enable=YES

3. 允许上传文件

write_enable=YES

4. 限制用户在家目录(重要)

chroot_local_user=YES
allow_writeable_chroot=YES

⚠️ 如果不加 allow_writeable_chroot=YES,用户家目录可写时会登录失败


四、被动模式(FTP 客户端常用)

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

如果你有公网 IP(如云服务器):

pasv_address=你的公网IP

五、防火墙配置(非常重要)

如果使用 ufw

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp

如果使用 iptables

iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT
iptables -A INPUT -p tcp --dport 30000:31000 -j ACCEPT

如果你在 云服务器,还需在安全组放行上述端口。


六、创建 FTP 用户(示例)

sudo useradd -m ftpuser
sudo passwd ftpuser

设置家目录权限(避免权限问题):

sudo chown ftpuser:ftpuser /home/ftpuser

七、重启 vsftpd

sudo systemctl restart vsftpd

八、常见问题

1. 登录后无法列出目录

  • 检查防火墙
  • 检查被动端口是否开放
  • 查看日志:
sudo tail -f /var/log/vsftpd.log

2. 500 OOPS: vsftpd: refusing to run with writable root inside chroot

allow_writeable_chroot=YES

3. 只允许部分用户登录

userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

然后在文件中加入允许的用户:

echo ftpuser | sudo tee -a /etc/vsftpd.userlist

九、(可选)启用 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

如果你告诉我:

  • 本地服务器 / 云服务器
  • 是否要用 虚拟用户
  • 是否要 只读 / 只写 / 多用户隔离

我可以给你一份更精确的配置模板

0