温馨提示×

ubuntu vsftp如何迁移

小樊
37
2026-09-25 11:18:52
栏目: 智能运维

在 Ubuntu 上迁移 vsftpd(vsftp) 通常涉及配置、用户、数据目录三部分。下面按常见场景给你一个完整迁移方案。


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

1. 查看 vsftpd 安装情况

dpkg -l | grep vsftpd

2. 备份配置文件

vsftpd 主配置文件一般在:

/etc/vsftpd.conf
/etc/vsftpd/

备份:

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

3. 备份用户和权限

如果是系统用户:

# 用户和组
sudo getent passwd | grep ftp
sudo getent group | grep ftp

如果是虚拟用户(PAM): 常见文件:

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

备份:

sudo tar czvf vsftpd-users.tar.gz /etc/pam.d/vsftpd /etc/vsftpd/virtual_users.*

4. 备份 FTP 数据目录

查看数据目录(在 vsftpd.conf 中):

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

常见目录:

/srv/ftp
/home/ftpuser
/var/ftp

备份:

sudo tar czvf ftpdata.tar.gz /srv/ftp

二、目标服务器安装 vsftpd

sudo apt update
sudo apt install vsftpd

三、迁移配置和用户

1. 恢复配置

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

2. 恢复用户(系统用户)

如果用了系统用户,需在目标机创建相同 UID/GID:

sudo useradd -u 1001 -M -s /usr/sbin/nologin ftpuser

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

sudo tar xzvf vsftpd-users.tar.gz -C /
sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db

四、迁移 FTP 数据

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

五、启动并验证

sudo systemctl restart vsftpd
sudo systemctl enable vsftpd

测试登录:

ftp localhost

或:

lftp ftp://user@localhost

六、常见问题

1. 登录失败(530)

  • 检查 /etc/pam.d/vsftpd
  • 虚拟用户 db 文件权限
chmod 600 /etc/vsftpd/virtual_users.db

2. 被动模式失败

确保:

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

并在防火墙放行。

3. SELinux(Ubuntu 一般无)

Ubuntu 默认不启用 SELinux。


七、推荐迁移方式(大数据)

  • 用 rsync 同步数据:
rsync -avz /srv/ftp/ user@newserver:/srv/ftp/

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

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

我可以给你更精确的迁移脚本。

0 踩