温馨提示×

centos ftpserver怎么迁移

小樊
43
2026-09-21 07:47:44
栏目: 智能运维

在 CentOS 上迁移 FTP 服务器(常见为 vsftpd / proftpd)通常包含 配置、用户、数据、权限 四部分的迁移。下面以最常见的 vsftpd 为例说明。


一、迁移前准备

1. 确认 FTP 软件

rpm -qa | grep vsftpd
# 或
which vsftpd

2. 确认 FTP 根目录

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

二、迁移配置文件

源服务器

tar czf vsftpd-conf.tar.gz /etc/vsftpd

目标服务器

scp vsftpd-conf.tar.gz root@目标IP:/tmp/
tar xzf /tmp/vsftpd-conf.tar.gz -C /

⚠️ 注意:

  • CentOS 6/7/8 的 vsftpd 版本差异可能影响兼容性
  • 建议对比 vsftpd.conf 差异

三、迁移 FTP 用户与密码

情况 1:系统用户(推荐)

用户是 Linux 用户

源服务器导出:

getent passwd | grep ftp > ftpusers.txt
getent shadow | grep ftp >> ftpshadow.txt

目标服务器导入(谨慎):

# 建议手动 useradd + passwd
useradd ftpuser
passwd ftpuser

或直接同步:

rsync -avz /etc/passwd /etc/shadow /etc/group root@目标IP:/etc/

⚠️ 生产环境不建议直接覆盖,容易冲突 UID


情况 2:虚拟用户(PAM + db)

常见于 vsftpd + virtual users

迁移以下文件:

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

重新生成 db(如需要):

db_load -T -t hash -f virtual_users.txt virtual_users.db

四、迁移 FTP 数据(最重要)

使用 rsync(推荐)

rsync -avz --delete /data/ftp/ root@目标IP:/data/ftp/

保持权限:

rsync -avz --delete -p -o -g /data/ftp/ root@目标IP:/data/ftp/

五、防火墙 & SELinux

防火墙

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

SELinux

setsebool -P ftpd_full_access on
restorecon -Rv /data/ftp

六、启动 & 测试

systemctl restart vsftpd
systemctl enable vsftpd

测试:

ftp 目标IP

或使用:

lftp ftp://user:pass@目标IP

七、常见坑

问题 原因
登录失败 PAM / 虚拟用户配置未迁移
无法写文件 SELinux / 目录权限
被动模式连不上 防火墙未开被动端口
UID 不一致 文件属主错乱

八、如果你告诉我:

  • 使用的 FTP 软件(vsftpd / proftpd / pure-ftpd)
  • 用户类型(系统 / 虚拟)
  • CentOS 版本

我可以给你 精确的一步到位迁移命令。

0 踩