温馨提示×

centos ftpserver如何迁移服务器

小樊
47
2026-09-24 07:29:17
栏目: 云计算

在 CentOS 上迁移 FTP 服务器(如 vsftpd / proftpd)到另一台服务器,一般可以按下面的思路操作。以下以 vsftpd(最常见的 CentOS FTP 服务) 为例说明。


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

1. 确认 FTP 软件类型

rpm -qa | grep vsftpd
# 或
rpm -qa | grep proftpd

2. 备份 FTP 配置文件

cp -a /etc/vsftpd /etc/vsftpd.bak

(proftpd 一般为 /etc/proftpd/)

3. 备份用户数据

系统用户 FTP

# 查看 FTP 用户
grep ftp /etc/passwd

虚拟用户(常见于 vsftpd)

# 虚拟用户数据库文件
ls -l /etc/vsftpd/
# 常见文件
# vsftpd_login.db
# virtual_users.txt

4. 备份 FTP 目录数据

# 假设 FTP 根目录为 /data/ftp
tar czf ftpdata.tar.gz /data/ftp

二、在新服务器上部署 FTP 服务

1. 安装 vsftpd

yum install -y vsftpd
systemctl enable vsftpd

2. 恢复配置文件

scp root@旧服务器:/etc/vsftpd.bak /etc/vsftpd

或解压备份:

cp -a /path/vsftpd.bak/* /etc/vsftpd/

3. 恢复 FTP 数据

scp root@旧服务器:/root/ftpdata.tar.gz /root/
tar xzf ftpdata.tar.gz -C /

三、用户与权限迁移

1. 系统用户迁移

在旧服务器:

grep ftpuser /etc/passwd >> user.txt
grep ftpuser /etc/shadow >> shadow.txt
grep ftpuser /etc/group  >> group.txt

在新服务器:

useradd ftpuser
# 修改密码或恢复 shadow(谨慎)

⚠️ 不推荐直接复制 shadow,建议重新设密码:

passwd ftpuser

2. 虚拟用户恢复

# 恢复 db 文件
cp vsftpd_login.db /etc/vsftpd/
chmod 600 /etc/vsftpd/vsftpd_login.db

# 如有 PAM 配置
cp /etc/pam.d/vsftpd /etc/pam.d/

四、防火墙与 SELinux

1. 防火墙

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

2. SELinux(常见坑)

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

五、启动并验证

systemctl restart vsftpd
systemctl status vsftpd

测试连接:

ftp 新服务器IP

六、可选:DNS / 域名切换

  • 修改 DNS 指向新服务器
  • 或停机旧服务器,避免数据不一致

七、常见问题

  • 登录失败:检查 PAM、虚拟用户 db
  • 上传失败:SELinux / 目录权限
  • 被动模式失败:配置 pasv_address

如果你能告诉我:

  • 使用的 FTP 软件(vsftpd / proftpd)
  • 是否用虚拟用户
  • FTP 目录位置

我可以给你更精确的迁移命令脚本。

0 踩