温馨提示×

如何迁移Linux FTPServer数据

小樊
36
2026-08-27 22:14:43
栏目: 智能运维

迁移 Linux FTP 服务器数据,通常包含 用户数据、FTP 目录、配置文件 三部分。下面按 最常见、最稳妥 的方式给你一个完整流程(以 vsftpd 为例,其他 FTP 服务类似)。


一、迁移前准备

1️⃣ 确认 FTP 服务类型

常见 FTP 服务:

  • ✅ vsftpd(最常见)
  • proftpd
  • pure-ftpd

查看当前服务:

ps -ef | grep ftp
# 或
systemctl status vsftpd

二、迁移内容清单

类型 内容
用户数据 /etc/passwd/etc/shadow/etc/group
FTP 配置 /etc/vsftpd//etc/vsftpd.conf
FTP 数据 /home/ftp/srv/ftp
权限 UID/GID、目录权限
被动端口 iptables / firewalld

三、推荐迁移方案(最稳妥 ✅)

✅ 方案一:整机迁移(推荐)

适合服务器更换、云迁移

  1. 源服务器打包
tar czvf ftp_backup.tar.gz \
/etc/vsftpd \
/etc/passwd /etc/shadow /etc/group \
/var/spool/mail \
/home/ftp
  1. 传输到新服务器
scp ftp_backup.tar.gz root@new_server:/root/
  1. 新服务器恢复
tar xzvf ftp_backup.tar.gz -C /
  1. 同步 UID/GID(重要) 确保用户 UID 一致:
id ftpuser

如不一致,手动调整:

usermod -u 旧UID ftpuser
groupmod -g 旧GID ftpuser
chown -R ftpuser:ftpuser /home/ftp

✅ 方案二:只迁移 FTP 数据(常用)

1️⃣ 停止 FTP 服务

systemctl stop vsftpd

2️⃣ 同步数据(保留权限)

rsync -avz --delete /data/ftp/ root@new_server:/data/ftp/

3️⃣ 同步配置

scp /etc/vsftpd/vsftpd.conf root@new_server:/etc/vsftpd/

4️⃣ 新服务器创建用户

useradd -d /data/ftp -s /sbin/nologin ftpuser
passwd ftpuser

四、vsftpd 关键配置检查

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

五、防火墙 & 被动模式(非常重要 ⚠️)

firewalld

firewall-cmd --add-port=21/tcp --permanent
firewall-cmd --add-port=30000-31000/tcp --permanent
firewall-cmd --reload

iptables

iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 30000:31000 -j ACCEPT

六、启动并验证

systemctl restart vsftpd
systemctl enable vsftpd

测试:

ftp new_server_ip

或使用 FileZilla。


七、常见问题

❌ 登录失败

  • 检查 /etc/shells
  • 确认用户 shell 在 /etc/shells

❌ 上传失败

  • 目录权限
chown -R ftpuser:ftpuser /data/ftp
chmod 755 /data/ftp

❌ 被动模式连不上

  • 防火墙未放行被动端口

八、我可以帮你定制方案

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

  1. FTP 服务类型(vsftpd / proftpd / pure-ftpd)
  2. 是否迁移用户
  3. 数据量大小
  4. 是否跨云 / 跨系统

我可以给你 一步不漏的命令清单

0