温馨提示×

debian vsftp如何迁移

小樊
45
2026-09-23 05:45:19
栏目: 智能运维

在 Debian 上迁移 vsftpd(FTP 服务)通常涉及配置文件、用户数据、用户账号、权限和日志的迁移。下面按最常见场景给你一个完整、可操作的迁移方案。


一、迁移前准备(源服务器)

1. 确认 vsftpd 已安装

dpkg -l | grep vsftpd

2. 备份 vsftpd 配置

cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

一般还会涉及:

/etc/vsftpd/
/etc/pam.d/vsftpd

3. 查看 FTP 根目录

grep -E "local_root|anon_root|user_sub_token" /etc/vsftpd.conf

常见目录:

/home/*
/srv/ftp
/var/www

二、迁移内容分类

✅ 必须迁移

  • /etc/vsftpd.conf
  • FTP 用户数据目录
  • 系统用户(或虚拟用户)

⚠️ 按需迁移

  • PAM 配置(虚拟用户)
  • 日志 /var/log/vsftpd.log
  • SSL 证书(若启用 FTPS)

三、用户账号迁移

情况 1:使用系统用户(最常见)

# 源服务器
getent passwd | grep ftp

导出用户:

grep '/bin/bash' /etc/passwd > users.txt
grep 'ftpuser' /etc/shadow >> shadows.txt

⚠️ 不建议直接拷贝 /etc/shadow,推荐:

useradd -m ftpuser
passwd ftpuser

情况 2:使用虚拟用户(PAM + db)

常见文件:

/etc/vsftpd/virtual_users.txt
/etc/vsftpd/virtual_users.db
/etc/pam.d/vsftpd

迁移:

scp /etc/vsftpd/virtual_users.* target:/etc/vsftpd/
scp /etc/pam.d/vsftpd target:/etc/pam.d/

四、数据目录迁移(重点)

1. 打包 FTP 数据

tar czvf ftpdata.tar.gz /home/ftpuser

或:

rsync -avz /srv/ftp/ root@newserver:/srv/ftp/

2. 保持权限(非常重要)

rsync -avz --numeric-ids /home/ftpuser root@newserver:/home/

五、目标服务器部署

1. 安装 vsftpd

apt update
apt install vsftpd

2. 恢复配置

cp vsftpd.conf /etc/vsftpd.conf

3. 恢复虚拟用户(如有)

apt install db-util
db_load -T -t hash -f virtual_users.txt virtual_users.db

4. 启动服务

systemctl restart vsftpd
systemctl enable vsftpd

六、SSL / FTPS 迁移(如启用)

grep ssl /etc/vsftpd.conf

常见:

rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.key

迁移证书:

scp /etc/ssl/certs/vsftpd.pem target:/etc/ssl/certs/
scp /etc/ssl/private/vsftpd.key target:/etc/ssl/private/

七、验证迁移是否成功

1. 本地测试

ftp localhost

2. 远程测试

ftp newserver_ip

3. 查看日志

tail -f /var/log/vsftpd.log

八、常见问题

❌ 530 Login incorrect

  • PAM 配置未迁移
  • 用户 home 目录权限错误

❌ 500 OOPS: cannot change directory

setsebool -P ftp_home_dir on   # 如启用 SELinux
chmod 755 /home/ftpuser

九、推荐迁移方式(总结)

✅ 最稳妥方案

rsync + 配置文件 + 用户手动重建

✅ 虚拟化/容器

  • 使用 Docker vsftpd 镜像

如果你愿意,可以告诉我:

  • 是 系统用户还是虚拟用户
  • 是否使用 FTPS / SFTP
  • 数据量大小

我可以给你定制迁移命令脚本。

0 踩