温馨提示×

centos如何迁移ftpserver

小樊
48
2026-07-08 20:31:35
栏目: 智能运维

在 CentOS 上迁移 FTP 服务器,通常指的是 把 FTP 服务(用户、数据、配置)从一台服务器迁移到另一台 CentOS 服务器。下面以 vsftpd(最常见) 为例,给你一套完整、可操作的迁移方案。如果你是 Pure-FTPd / ProFTPD,我也可以单独给你对应步骤。


一、迁移前准备

1️⃣ 确认 FTP 类型

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

一般 CentOS 常见:

  • ✅ vsftpd
  • ✅ Pure-FTPd
  • ✅ ProFTPD

二、vsftpd 迁移(最常见)

✅ 迁移内容

  1. 用户账号
  2. FTP 数据目录
  3. 配置文件
  4. 权限与 SELinux
  5. 防火墙

三、源服务器(旧服务器)

1️⃣ 备份 vsftpd 配置

cp /etc/vsftpd/vsftpd.conf /root/vsftpd.conf.bak

如果你有其它配置文件:

cp -r /etc/vsftpd /root/vsftpd-backup

2️⃣ 备份用户数据(非虚拟用户)

本地用户方式(系统用户)

getent passwd | grep ftp

导出用户:

cp /etc/passwd /root/passwd.bak
cp /etc/shadow /root/shadow.bak
cp /etc/group  /root/group.bak

⚠️ 不建议直接覆盖 passwd / shadow ✅ 建议只提取 FTP 用户单独迁移(更安全)


3️⃣ 备份虚拟用户(如使用 db 文件)

cp /etc/vsftpd/virtual_users.db /root/
cp /etc/pam.d/vsftpd /root/vsftpd.pam.bak

4️⃣ 打包 FTP 数据目录

假设数据目录是 /data/ftp

tar czvf ftpdata.tar.gz /data/ftp

四、新服务器(目标服务器)

1️⃣ 安装 vsftpd

yum install -y vsftpd

2️⃣ 恢复配置文件

cp /root/vsftpd.conf.bak /etc/vsftpd/vsftpd.conf

如整个目录:

cp -r /root/vsftpd-backup/* /etc/vsftpd/

3️⃣ 恢复虚拟用户(如适用)

cp /root/virtual_users.db /etc/vsftpd/
cp /root/vsftpd.pam.bak /etc/pam.d/vsftpd

4️⃣ 恢复数据目录

tar xzvf ftpdata.tar.gz -C /
chown -R ftpuser:ftpuser /data/ftp
chmod -R 755 /data/ftp

5️⃣ 同步用户(本地用户方式)

不建议直接覆盖 passwd / shadow

更安全方式:

useradd ftpuser
passwd ftpuser

或从备份中提取单个用户手动重建。


五、SELinux 设置(非常重要)

1️⃣ 查看状态

getenforce

2️⃣ 允许 FTP 访问

setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on

如果是公开目录:

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

六、防火墙放行 FTP

firewalld(CentOS 7+)

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

iptables(老系统)

iptables -A INPUT -p tcp --dport 21 -j ACCEPT

七、启动 vsftpd

systemctl restart vsftpd
systemctl enable vsftpd

八、测试 FTP 是否正常

ftp 新服务器IP

或用 FileZilla / WinSCP 测试。


九、常见迁移问题

❌ 530 Login incorrect

  • pam 配置错误
  • 虚拟用户 db 文件损坏
  • 用户不存在

检查:

tail -f /var/log/secure

❌ 上传失败(权限)

ls -ld /data/ftp
setfacl -m u:ftpuser:rwx /data/ftp

十、如果你用的是其他 FTP

FTP 类型 迁移重点
Pure-FTPd /etc/pure-ftpd + 用户 DB
ProFTPD /etc/proftpd.conf
虚拟用户 db / mysql / ldap

✅ 总结(最简流程)

旧服务器:
1. 备份 vsftpd.conf
2. 打包数据目录
3. 备份虚拟用户(如有)

新服务器:
1. 安装 vsftpd
2. 恢复配置
3. 恢复数据
4. 设置 SELinux / 防火墙
5. 启动服务

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

  • ✅ FTP 类型(vsftpd / pure-ftpd / proftpd)
  • ✅ 用户类型(系统用户 / 虚拟用户)
  • ✅ CentOS 版本(6 / 7 / 8 / Stream)

我可以给你 完全定制化的迁移命令清单

0