在 Debian 上迁移 vsftpd 的数据,通常包含 用户数据(FTP 目录)、vsftpd 配置文件 以及 用户认证信息。下面按常见场景给你一套完整、稳妥的迁移方案。
dpkg -l | grep vsftpd
systemctl status vsftpd
常见位置:
/var/ftp
/home/ftp
/srv/ftp
查看配置:
grep -E "local_root|anon_root|chroot" /etc/vsftpd.conf
cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
在新服务器上:
scp root@old-server:/etc/vsftpd.conf /etc/vsftpd.conf
⚠️ 注意:
listen_ipv6、listen 等网络参数可能需要调整systemctl stop vsftpd
rsync -avz --delete /data/ftp/ root@new-server:/data/ftp/
参数说明:
-a:保留权限、时间-v:显示过程-z:压缩--delete:保持一致性✅ 强烈建议:使用 rsync 而不是 scp,避免权限丢失
scp root@old-server:/etc/passwd /tmp/passwd.old
scp root@old-server:/etc/shadow /tmp/shadow.old
scp root@old-server:/etc/group /tmp/group.old
⚠️ 不要直接覆盖,建议手动合并或只迁移 FTP 用户
grep ftpuser /etc/passwd >> /etc/passwd
grep ftpuser /etc/shadow >> /etc/shadow
grep ftpuser /etc/group >> /etc/group
scp root@old-server:/etc/vsftpd/vsftpd_login.db /etc/vsftpd/
scp root@old-server:/etc/pam.d/vsftpd /etc/pam.d/vsftpd
apt install db-util
cat /etc/pam.d/vsftpd
示例:
auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required pam_userdb.so db=/etc/vsftpd/vsftpd_login
chown -R ftpuser:ftpuser /data/ftp
chmod 755 /data/ftp
chmod 775 /data/ftp/upload
aa-status
nano /etc/apparmor.d/usr.sbin.vsftpd
重载:
systemctl reload apparmor
systemctl start vsftpd
systemctl enable vsftpd
ftp localhost
或使用 FileZilla / lftp
| 项目 | 是否完成 |
|---|---|
| vsftpd.conf 迁移 | ✅ |
| FTP 数据目录同步 | ✅ |
| 用户 / 密码迁移 | ✅ |
| 权限正确 | ✅ |
| 被动端口一致 | ✅ |
| 防火墙放行 | ✅ |
write_enable=YESlisten=YES / listen_ipv6=NO如果你愿意,可以告诉我:
我可以给你 精确到命令级别的迁移方案。