温馨提示×

ubuntu vsftp怎样迁移

小樊
39
2026-09-28 09:07:53
栏目: 智能运维

在 Ubuntu 上迁移 vsftpd(FTP 服务)通常指把 配置、用户、数据、权限 从一台服务器迁移到另一台,或重装系统后恢复。下面按最常见场景给你一套完整做法。


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

1. 停止 vsftpd

sudo systemctl stop vsftpd

2. 备份配置文件

vsftpd 主要配置:

/etc/vsftpd.conf
/etc/vsftpd/

备份:

sudo tar czf vsftpd-conf.tar.gz /etc/vsftpd.conf /etc/vsftpd

3. 备份用户相关(视认证方式)

如果是系统用户(最常见)

# 用户信息
sudo getent passwd | grep ftp > users.txt
sudo getent shadow | grep ftp >> users.txt

# 或者直接备份相关用户
sudo cp /etc/passwd /etc/shadow /etc/group ./user-backup/

如果是虚拟用户(PAM + db)

常见文件:

/etc/vsftpd/virtual_users.txt
/etc/vsftpd/virtual_users.db
/etc/pam.d/vsftpd
sudo tar czf vsftpd-virtual.tar.gz /etc/vsftpd

4. 备份 FTP 数据目录

例如:

/var/ftp
/home/ftpuser
/srv/ftp
sudo tar czf ftpdata.tar.gz /var/ftp

5. 记录端口与防火墙

sudo netstat -tulnp | grep ftp
sudo ufw status

二、新服务器安装 vsftpd

sudo apt update
sudo apt install vsftpd

三、恢复配置(新服务器)

1. 恢复配置

sudo tar xzf vsftpd-conf.tar.gz -C /

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

sudo tar xzf vsftpd-virtual.tar.gz -C /
sudo systemctl restart vsftpd

3. 恢复系统用户(如需)

手动建用户并同步 UID:

sudo useradd -u 1001 -d /home/ftpuser ftpuser

或恢复:

/etc/passwd
/etc/shadow
/etc/group

四、恢复 FTP 数据

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

五、防火墙 & SELinux(Ubuntu 一般无 SELinux)

sudo ufw allow 21/tcp
sudo ufw allow 20/tcp
# 被动端口(如配置中有)
sudo ufw allow 30000:31000/tcp

六、启动并测试

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

测试:

ftp localhost

或:

lftp ftp://user@ip

七、常见问题

1. 登录失败

  • 检查 /etc/pam.d/vsftpd
  • 虚拟用户 db 是否恢复
  • 用户家目录权限

2. 无法上传

write_enable=YES

3. 被动模式连不上

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

八、推荐迁移方式(简单安全)

✅ 配置 + 数据分离备份
✅ 用 rsync 同步数据

rsync -avz /var/ftp/ user@new:/var/ftp/

如果你能告诉我:

  • 是 系统用户还是虚拟用户
  • 是否 Docker / 云服务器
  • 是否 跨版本(18.04 → 22.04)

我可以给你更精确的迁移命令。

0 踩