温馨提示×

ubuntu vsftp怎样迁移站点

小樊
42
2026-09-16 08:40:58
栏目: 智能运维

在 Ubuntu 上迁移 vsftpd(vsftp)站点,通常是指把 FTP 服务、用户、配置和文件数据 从一台服务器迁移到另一台,或在同机重建。下面按常见场景给你一套可操作流程。


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

1. 备份 vsftpd 配置

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
sudo tar czf vsftpd-conf.tar.gz /etc/vsftpd.conf /etc/vsftpd*

2. 备份 FTP 用户数据

vsftpd 一般使用系统用户或虚拟用户:

✅ 系统用户 FTP

# 用户列表
sudo cp /etc/passwd /etc/passwd.bak
sudo cp /etc/shadow /etc/shadow.bak
sudo cp /etc/group /etc/group.bak

✅ 虚拟用户(PAM)

常见文件:

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

备份:

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

3. 备份 FTP 根目录数据

假设 FTP 根目录是 /srv/ftp/home/ftpuser

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

二、新服务器安装 vsftpd

sudo apt update
sudo apt install vsftpd

三、迁移配置文件

把老服务器的备份传到新服务器:

scp vsftpd-conf.tar.gz user@new-server:/tmp

新服务器恢复:

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

检查配置:

sudo nano /etc/vsftpd.conf

常见注意点:

  • local_root
  • chroot_local_user=YES
  • anonymous_enable
  • listen=YES / listen_ipv6

四、迁移用户

方式 1:系统用户(推荐简单)

在新服务器创建用户:

sudo useradd -m ftpuser
sudo passwd ftpuser

或直接恢复:

sudo useradd -m ftpuser

⚠️ 注意:直接复制 /etc/shadow 有风险,建议只同步用户名,密码重新设置。


方式 2:虚拟用户

sudo tar xzf /tmp/vsftpd-virtual.tar.gz -C /
sudo apt install db-util
sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db

重启服务:

sudo systemctl restart vsftpd

五、迁移 FTP 文件数据

scp ftpdata.tar.gz user@new-server:/tmp
sudo tar xzf /tmp/ftpdata.tar.gz -C /
sudo chown -R ftpuser:ftpuser /srv/ftp

六、防火墙 & 端口

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
# 被动模式端口
sudo ufw allow 30000:31000/tcp

vsftpd 配置示例:

pasv_min_port=30000
pasv_max_port=31000

七、启动并验证

sudo systemctl restart vsftpd
sudo systemctl status vsftpd

测试连接:

ftp localhost

或用 FileZilla 测试被动模式。


八、常见坑位

❌ 登录 530
→ PAM / 虚拟用户配置错误

❌ 无法列出目录
→ 被动端口未开放

❌ 写不了文件
→ 目录权限或 write_enable=YES


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

  • 系统用户还是虚拟用户
  • 是否使用 SSL/TLS
  • 同机迁移还是跨服务器

我可以给你精准配置示例

0