温馨提示×

怎么迁移CentOS的FTPServer数据

小樊
41
2026-08-19 01:51:00
栏目: 智能运维

迁移 CentOS 上的 FTP Server 数据,通常取决于你使用的是哪种 FTP 服务(最常见的是 vsftpd),以及你是否要 迁移到另一台服务器只是迁移数据目录。下面我按最常见的 vsftpd + 本地用户/匿名用户 场景,给你一套完整、可操作的迁移方案。


一、确认当前 FTP 服务器类型

rpm -qa | grep -E "vsftpd|proftpd|pure-ftpd"

常见结果:

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

下面以 vsftpd 为主说明。


二、迁移前准备(强烈建议)

1️⃣ 停止 FTP 服务

systemctl stop vsftpd
systemctl disable vsftpd   # 可选

2️⃣ 确认 FTP 数据目录

常见位置:

/var/ftp
/home/ftpuser
/data/ftp

查看配置文件确认:

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

三、迁移 FTP 数据(核心步骤)

✅ 方案一:迁移到新服务器(最常见)

1️⃣ 打包原服务器数据

cd /var/ftp
tar czvf ftpdata.tar.gz .

或指定目录:

tar czvf /tmp/ftpdata.tar.gz /data/ftp

2️⃣ 传输到新服务器

scp ftpdata.tar.gz root@新服务器IP:/tmp/

3️⃣ 在新服务器解压

mkdir -p /data/ftp
tar xzvf /tmp/ftpdata.tar.gz -C /data/ftp

4️⃣ 保持权限(非常重要)

chown -R ftpuser:ftpuser /data/ftp
chmod -R 755 /data/ftp

四、迁移 FTP 用户(如适用)

1️⃣ 迁移用户账号

# 原服务器
grep ftpuser /etc/passwd >> user.txt
grep ftpuser /etc/shadow >> shadow.txt
grep ftpuser /etc/group  >> group.txt

复制到新服务器后:

useradd -M -d /data/ftp ftpuser
passwd ftpuser

⚠️ 不建议直接覆盖 /etc/shadow,更安全方式是重新设置密码。


五、迁移 vsftpd 配置

1️⃣ 备份原配置

tar czvf vsftpd_conf.tar.gz /etc/vsftpd

2️⃣ 在新服务器还原

tar xzvf vsftpd_conf.tar.gz -C /

3️⃣ 修改路径(如有变化)

vim /etc/vsftpd/vsftpd.conf

常见需检查项:

local_root=/data/ftp
anon_root=/data/ftp
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES

六、SELinux 处理(CentOS 常见坑)

1️⃣ 查看状态

getenforce

2️⃣ 设置 FTP 目录上下文

semanage fcontext -a -t public_content_t "/data/ftp(/.*)?"
restorecon -Rv /data/ftp

或临时关闭(不推荐生产环境):

setenforce 0

七、防火墙放行 FTP

firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload

八、启动并验证

systemctl start vsftpd
systemctl enable vsftpd

测试连接

ftp 新服务器IP

或使用 FileZilla / WinSCP 测试。


九、常见错误排查

问题 原因
530 Login incorrect 用户/密码错误
550 Permission denied 权限或 SELinux
被动模式连不上 防火墙未放行被动端口
目录为空 local_root 没配置

十、如果你愿意,我可以帮你定制方案

你可以直接告诉我:

  1. ✅ FTP 软件(vsftpd / proftpd / pure-ftpd)
  2. ✅ 是 同服务器迁移 还是 跨服务器
  3. ✅ 是否使用 虚拟用户
  4. ✅ CentOS 版本(6 / 7 / 8 / Stream)

我可以给你 精确到命令级别 的迁移方案。

0