温馨提示×

ubuntu vsftp怎么迁移

小樊
46
2026-10-18 20:04:21
栏目: 智能运维

在 Ubuntu 上迁移 vsftpd(vsftp) 通常是指把 FTP 服务及其用户、配置、数据 从一台服务器迁移到另一台服务器。下面给你一套稳妥可用的迁移步骤。


一、迁移前准备

1. 源服务器(旧)

确认以下信息:

  • vsftpd 是否已安装
  • 使用哪种用户模式:
    • 系统用户(/etc/passwd)
    • 虚拟用户(PAM + db 文件)
  • FTP 根目录位置(如 /home/ftp、/srv/ftp)
  • 是否有特殊配置(端口、被动模式、SSL)
dpkg -l | grep vsftpd
cat /etc/vsftpd.conf

二、迁移配置文件

1. 备份 vsftpd 配置

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

如使用了额外配置目录:

ls /etc/vsftpd/

三、迁移用户数据(关键)

情况 A:使用系统用户 FTP

1. 备份用户

grep ftp /etc/passwd
grep ftp /etc/shadow
grep ftp /etc/group

2. 目标服务器创建相同用户

useradd -m ftpuser
passwd ftpuser

⚠️ 更推荐直接同步 /etc/passwd、/etc/shadow、/etc/group(仅 FTP 用户)


情况 B:使用虚拟用户(常见)

1. 备份虚拟用户数据库

ls /etc/vsftpd/
# 常见文件
# virtual_users.txt
# virtual_users.db

2. 迁移到目标服务器

scp /etc/vsftpd/* user@newserver:/etc/vsftpd/

3. 安装依赖

apt install vsftpd libpam-pwdfile db-util

四、迁移 FTP 文件数据

1. 打包 FTP 根目录

tar czf ftpdata.tar.gz /srv/ftp

2. 传输到新服务器

scp ftpdata.tar.gz user@newserver:/tmp

3. 解压并修复权限

tar xzf ftpdata.tar.gz -C /
chown -R ftpuser:ftpuser /srv/ftp

五、目标服务器安装与配置

1. 安装 vsftpd

apt update
apt install vsftpd

2. 恢复配置

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

3. 如用虚拟用户,确认 PAM

cat /etc/pam.d/vsftpd

示例:

auth required pam_userdb.so db=/etc/vsftpd/virtual_users
account required pam_userdb.so db=/etc/vsftpd/virtual_users

六、启动与测试

systemctl restart vsftpd
systemctl enable vsftpd

测试连接:

ftp localhost

或:

lftp ftpuser@localhost

七、常见问题

1. 登录失败

  • 检查 PAM 配置
  • 检查数据库权限(chmod 600)

2. 被动模式连不上

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

并放行防火墙。

3. 防火墙

ufw allow 21
ufw allow 30000:31000/tcp

八、最简迁移总结

配置 /etc/vsftpd.conf
用户(系统 or 虚拟)
数据目录(/srv/ftp)
PAM(虚拟用户)
防火墙

如果你能告诉我:

  • 是 系统用户还是虚拟用户
  • 是否使用 SSL
  • 是新机全新迁移还是升级系统

我可以直接给你针对你环境的命令清单。

0 踩