温馨提示×

debian ftpserver怎么配虚拟

小樊
40
2026-09-25 02:29:39
栏目: 云计算

在 Debian 上配置 FTP 虚拟用户(Virtual Users),常见做法是使用 vsftpd + PAM + 虚拟用户数据库(db4)。下面给你一套可用、较标准的步骤。


一、安装软件

sudo apt update
sudo apt install vsftpd db-util

二、创建虚拟用户文件

创建一个文本文件,格式为:

用户名
密码
用户名
密码

例如 /etc/vsftpd/virtual_users.txt:

ftpuser1
123456
ftpuser2
abcdef

生成数据库:

sudo mkdir -p /etc/vsftpd
sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
sudo chmod 600 /etc/vsftpd/virtual_users.db

三、配置 PAM

编辑 PAM 文件:

sudo nano /etc/pam.d/vsftpd

清空原内容,写入:

auth required /usr/lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/virtual_users
account required /usr/lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/virtual_users

如果路径不同,用 find / -name pam_userdb.so 查找


四、创建虚拟用户映射的系统用户

sudo useradd -d /home/ftp -s /usr/sbin/nologin ftpvuser
sudo mkdir -p /home/ftp
sudo chown ftpvuser:ftpvuser /home/ftp

五、配置 vsftpd

编辑 /etc/vsftpd.conf:

sudo nano /etc/vsftpd.conf

关键配置:

listen=YES
listen_ipv6=NO

anonymous_enable=NO
local_enable=YES
write_enable=YES

guest_enable=YES
guest_username=ftpvuser

virtual_use_local_privs=YES

pam_service_name=vsftpd
user_sub_token=$USER
local_root=/home/ftp/$USER

chroot_local_user=YES
allow_writeable_chroot=YES

pasv_enable=YES
pasv_min_port=40000
pasv_max_port=41000

六、为每个虚拟用户建目录

sudo mkdir -p /home/ftp/ftpuser1
sudo mkdir -p /home/ftp/ftpuser2
sudo chown -R ftpvuser:ftpvuser /home/ftp

七、防火墙(如有)

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:41000/tcp

八、重启服务

sudo systemctl restart vsftpd
sudo systemctl enable vsftpd

九、测试

ftp localhost

或使用 FileZilla:

  • 主机:服务器 IP
  • 协议:FTP
  • 登录类型:普通
  • 用户:ftpuser1
  • 密码:123456

十、常见问题

1. 登录失败(530)

  • PAM 路径错
  • db 文件权限不对
  • vsftpd.conf 中 pam_service_name 错

2. 无法写入

  • write_enable=YES
  • 目录权限归 ftpvuser

3. 被动模式连不上

  • 检查 pasv 端口和防火墙

如果你是指 proftpd / pure-ftpd 或 Docker 环境 / 云服务器,告诉我,我可以给你对应方案。

0 踩