温馨提示×

ubuntu ftpserver怎样迁移

小樊
47
2026-09-11 11:19:54
栏目: 智能运维

在 Ubuntu 上迁移 FTP 服务器,通常分为同一台机器重建配置不同服务器之间迁移两种情况。下面以最常见的 vsftpd(Ubuntu 默认常用 FTP 服务)为例说明,如果是 ProFTPD / Pure-FTPd 也可以类比。


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

1. 确认 FTP 服务类型

dpkg -l | grep ftp

常见:

  • vsftpd
  • proftpd
  • pure-ftpd

2. 备份 FTP 配置文件

vsftpd 示例

sudo cp -r /etc/vsftpd /etc/vsftpd.bak
sudo tar czf vsftpd-conf.tar.gz /etc/vsftpd.conf /etc/vsftpd/

3. 备份用户与权限

系统用户 FTP

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

虚拟用户(如 PAM + db 文件)

sudo cp -r /etc/vsftpd /etc/vsftpd.bak
sudo tar czf vsftpd-virtual.tar.gz /etc/vsftpd

4. 备份 FTP 数据目录

sudo tar czf ftpdata.tar.gz /srv/ftp
# 或
sudo rsync -avz /home/ftpuser/ target_server:/home/ftpuser/

二、目标服务器部署(新 Ubuntu)

1. 安装 FTP 服务

sudo apt update
sudo apt install vsftpd

2. 恢复配置文件

sudo tar xzf vsftpd-conf.tar.gz -C /
sudo systemctl restart vsftpd

3. 恢复用户

系统用户(谨慎)

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

⚠️ 建议只提取 FTP 用户条目,避免覆盖系统用户

虚拟用户

sudo tar xzf vsftpd-virtual.tar.gz -C /
sudo systemctl restart vsftpd

4. 恢复数据

sudo tar xzf ftpdata.tar.gz -C /
sudo chown -R ftpuser:ftpuser /srv/ftp

三、使用 rsync 快速迁移(推荐)

如果两台服务器都能联网:

rsync -avz --delete /srv/ftp/ user@newserver:/srv/ftp/
rsync -avz /etc/vsftpd/ user@newserver:/etc/vsftpd/

四、迁移后检查

sudo systemctl status vsftpd
sudo netstat -tulnp | grep 21
ftp localhost

检查:

  • 用户能否登录
  • 权限是否正确
  • 被动模式端口是否开放(防火墙)

五、注意事项

  • 防火墙:21 + 被动端口段
  • SELinux:Ubuntu 默认无,但若用 AppArmor 需检查
  • SSL:如启用 FTPS,需复制证书
/etc/ssl/private/vsftpd.pem

如果你能告诉我:

  • 用的是 vsftpd / proftpd / pure-ftpd
  • 本地迁移还是跨服务器
  • 是否使用 虚拟用户

我可以给你一份精确迁移命令清单

0